{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch\n",
    "from transformer_lens import HookedTransformer\n",
    "import numpy as np"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load Dictionaries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from torch import nn\n",
    "class AutoEncoder(nn.Module):\n",
    "    def __init__(self, activation_size, n_dict_components, t_type=torch.float16):\n",
    "        super(AutoEncoder, self).__init__()\n",
    "        # create decoder using float16 to save memory\n",
    "        self.decoder = nn.Linear(n_dict_components, activation_size, bias=False)\n",
    "        # Initialize the decoder weights orthogonally\n",
    "        nn.init.orthogonal_(self.decoder.weight)\n",
    "        self.decoder = self.decoder.to(t_type)\n",
    "\n",
    "        self.encoder = nn.Sequential(\n",
    "            nn.Linear(activation_size, n_dict_components).to(t_type),\n",
    "            nn.ReLU()\n",
    "        )\n",
    "        \n",
    "    def forward(self, x):\n",
    "        c = self.encoder(x)\n",
    "        # Apply unit norm constraint to the decoder weights\n",
    "        self.decoder.weight.data = nn.functional.normalize(self.decoder.weight.data, dim=0)\n",
    "    \n",
    "        x_hat = self.decoder(c)\n",
    "        return x_hat, c\n",
    "    \n",
    "    @property\n",
    "    def device(self):\n",
    "        return next(self.parameters()).device\n",
    "    \n",
    "\n",
    "import pickle\n",
    "\n",
    "# filename = r'/root/sparse_coding/autoencoders4.pkl'\n",
    "filename = r'/root/sparse_coding/auto_encoders.pkl'\n",
    "\n",
    "# Load the pickle file\n",
    "with open(filename, 'rb') as file:\n",
    "    autoencoders = pickle.load(file)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "l1_index = 0\n",
    "dictionaries = [autoencoder.decoder.weight.data.T for autoencoder in autoencoders[l1_index]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([2048, 2048])\n",
      "torch.Size([4096, 2048])\n",
      "torch.Size([8192, 2048])\n",
      "torch.Size([16384, 2048])\n",
      "torch.Size([32768, 2048])\n"
     ]
    }
   ],
   "source": [
    "for d in dictionaries:\n",
    "    print(d.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(autoencoders)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "smaller_dict, larger_dict = dictionaries[0], dictionaries[1]\n",
    "smaller_auto_encoder, larger_auto_encoder = autoencoders[l1_index][0], autoencoders[l1_index][1]"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# MCS"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.93541533 0.20955059 0.90894008 ... 0.08109202 0.05759869 0.0980377 ]\n"
     ]
    }
   ],
   "source": [
    "#Dictionary Comparison\n",
    "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
    "smaller_dict_features, _ = smaller_dict.shape\n",
    "larger_dict_features, _ = larger_dict.shape\n",
    "larger_dict = larger_dict.to(device)\n",
    "# Hungary algorithm\n",
    "from scipy.optimize import linear_sum_assignment\n",
    "# Calculate all cosine similarities and store in a 2D array\n",
    "cos_sims = np.zeros((smaller_dict_features, larger_dict_features))\n",
    "for idx, vector in enumerate(smaller_dict):\n",
    "    cos_sims[idx] = torch.nn.functional.cosine_similarity(vector.to(device), larger_dict, dim=1).cpu().numpy()\n",
    "# Convert to a minimization problem\n",
    "cos_sims = 1 - cos_sims\n",
    "# Use the Hungarian algorithm to solve the assignment problem\n",
    "row_ind, col_ind = linear_sum_assignment(cos_sims)\n",
    "# Retrieve the max cosine similarities and corresponding indices\n",
    "max_cosine_similarities = 1 - cos_sims[row_ind, col_ind]\n",
    "\n",
    "print(max_cosine_similarities)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "546\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Get the indices of the max cosine similarities in descending order\n",
    "max_indices = np.argsort(max_cosine_similarities)[::-1]\n",
    "max_cosine_similarities[max_indices][:20]\n",
    "print((max_cosine_similarities > .9).sum())\n",
    "# Plot histogram of max_cosine_similarities\n",
    "import matplotlib.pyplot as plt\n",
    "plt.hist(max_cosine_similarities, bins=50)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Model activations & Dictionary Activations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using pad_token, but it is not set yet.\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded pretrained model EleutherAI/pythia-70m-deduped into HookedTransformer\n"
     ]
    }
   ],
   "source": [
    "# Load in the Pythia model w/ transformer lens\n",
    "model_name = \"EleutherAI/pythia-70m-deduped\"\n",
    "model = HookedTransformer.from_pretrained(model_name, device=device)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Found cached dataset parquet (/root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec)\n",
      "Loading cached processed dataset at /root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec/cache-27e019ffdbbb8e00.arrow\n",
      "Loading cached processed dataset at /root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec/cache-84ef42e99b99de34.arrow\n",
      "Loading cached processed dataset at /root/.cache/huggingface/datasets/NeelNanda___parquet/NeelNanda--pile-10k-72f566e9f7c464ab/0.0.0/2a3b91fbd88a2c90d1dbbb32b460cf621d31bd5b05b934492fdef7d8d6f236ec/cache-614c427dafb2def6.arrow\n"
     ]
    }
   ],
   "source": [
    "# Downnload dataset\n",
    "from datasets import Dataset, load_dataset\n",
    "dataset_name = \"NeelNanda/pile-10k\"\n",
    "token_amount=25\n",
    "dataset = load_dataset(dataset_name, split=\"train\").map(\n",
    "    lambda x: model.tokenizer(x['text']),\n",
    "    batched=True,\n",
    ").filter(\n",
    "    lambda x: len(x['input_ids']) > token_amount\n",
    ").map(\n",
    "    lambda x: {'input_ids': x['input_ids'][:token_amount]}\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d75957cbfad34fe88ec411c167d61180",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/156 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Now we can use the model to get the activations\n",
    "from torch.utils.data import DataLoader\n",
    "from tqdm.auto import tqdm\n",
    "from einops import rearrange\n",
    "neurons = model.W_in.shape[-1]\n",
    "datapoints = dataset.num_rows\n",
    "batch_size = 64\n",
    "layer = 2\n",
    "neuron_activations = torch.zeros((datapoints*token_amount, neurons))\n",
    "dictionary_activations = torch.zeros((datapoints*token_amount, smaller_dict_features))\n",
    "smaller_auto_encoder = smaller_auto_encoder.to(device)\n",
    "\n",
    "with torch.no_grad(), dataset.formatted_as(\"pt\"):\n",
    "    dl = DataLoader(dataset[\"input_ids\"], batch_size=batch_size)\n",
    "    for i, batch in enumerate(tqdm(dl)):\n",
    "        _, cache = model.run_with_cache(batch.to(device))\n",
    "        batched_neuron_activations = rearrange(cache[f\"blocks.{layer}.mlp.hook_post\"], \"b s n -> (b s) n\" )\n",
    "        neuron_activations[i*batch_size*token_amount:(i+1)*batch_size*token_amount,:] = batched_neuron_activations\n",
    "        reconstruction, batched_dictionary_activations = smaller_auto_encoder(batched_neuron_activations)\n",
    "        dictionary_activations[i*batch_size*token_amount:(i+1)*batch_size*token_amount,:] = batched_dictionary_activations"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Neuron Sparsity per Feature by Activations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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HZ9//jm++OILAEBaWhpcXFwQHh6OPn36ICYmBj4+Pjh16hSaNm0KANizZw86deqEmzdvwt3d/aU50tPToVQqkZaWBnt7e+29QSIiItIZTb+/9Tqys23bNjRt2hQ9e/aEs7MzGjdujP/7v/+TlicmJiI5ORmBgYFSm1KpRLNmzRAREQEAiIiIgIODg1ToAEBgYCBMTEzwzz//FLvdnJwcpKenqz2IiIjIOOm12Ll69SpWrlyJOnXqYO/evRg5ciTGjBmDdevWAQCSk5MBAC4uLmqvc3FxkZYlJyfD2dlZbbmZmRkcHR2lPs8LCwuDUqmUHh4eHtp+a0RERFRB6LXYUalUaNKkCebNm4fGjRvj448/xvDhw7Fq1Sqdbjc0NBRpaWnS48aNGzrdHhEREemPXosdNzc3+Pj4qLV5e3sjKSkJAODq6goAuHv3rlqfu3fvSstcXV2RkpKitjw/Px8PHz6U+jzP0tIS9vb2ag8iIiIyTnotdgICAhAXF6fWFh8fj+rVqwMAPD094erqioMHD0rL09PT8c8//8Df3x8A4O/vj9TUVERGRkp9Dh06BJVKhWbNmpXDuyAiIqKKzEyfGx8/fjxatGiBefPmoVevXvj333+xevVqrF69GgCgUCgwbtw4zJkzB3Xq1IGnpyemTp0Kd3d3dOvWDcDTkaB3331XOvyVl5eH0aNHo0+fPhqdiUVERETGTa+nngPAjh07EBoaioSEBHh6eiIkJATDhw+XlgshMH36dKxevRqpqalo2bIlVqxYgbp160p9Hj58iNGjR2P79u0wMTFB9+7dsXTpUtja2mqUgaeeExERGR5Nv7/1XuxUBCx2iIiIDI9BXGeHiIiISNdY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRY7FDRERERs1Mk07btm3TeIVdunQpdRgiIiIibdOo2OnWrZvac4VCASGE2vNCBQUF2klGREREpAUaHcZSqVTSY9++ffD19cXu3buRmpqK1NRU7Nq1C02aNMGePXtkbXzGjBlQKBRqDy8vL2n5kydPMGrUKFSuXBm2trbo3r077t69q7aOpKQkdO7cGdbW1nB2dsaECROQn58vKwcREREZL41Gdp41btw4rFq1Ci1btpTagoKCYG1tjY8//hgxMTGy1levXj0cOHDgf4HM/hdp/Pjx2LlzJzZv3gylUonRo0cjODgYx48fB/B0FKlz585wdXXFiRMncOfOHXz00UcwNzfHvHnz5L41IiIiMkKyi50rV67AwcGhSLtSqcS1a9fkBzAzg6ura5H2tLQ0/Pjjj9iwYQPeeecdAMDatWvh7e2NkydPonnz5ti3bx8uXbqEAwcOwMXFBb6+vpg9eza++uorzJgxAxYWFrLzEBERkXGRfTbWm2++iZCQELXDSXfv3sWECRPw1ltvyQ6QkJAAd3d31KxZE/3790dSUhIAIDIyEnl5eQgMDJT6enl5oVq1aoiIiAAAREREoEGDBnBxcZH6BAUFIT09HRcvXixxmzk5OUhPT1d7EBERkXGSXeysWbMGd+7cQbVq1VC7dm3Url0b1apVw61bt/Djjz/KWlezZs0QHh6OPXv2YOXKlUhMTESrVq2QkZGB5ORkWFhYFBlFcnFxQXJyMgAgOTlZrdApXF64rCRhYWFQKpXSw8PDQ1ZuIiIiMhyyD2PVrl0b586dw/79+xEbGwsA8Pb2RmBgoNpZWZro2LGj9PeGDRuiWbNmqF69On777TdYWVnJjaax0NBQhISESM/T09NZ8BARERkp2cUO8PRU8w4dOuDtt9+GpaWl7CKnJA4ODqhbty4uX76M9u3bIzc3F6mpqWqjO3fv3pXm+Li6uuLff/9VW0fh4bXi5gEVsrS0hKWlpVYyExERUcUm+zCWSqXC7Nmz8frrr8PW1haJiYkAgKlTp8o+jPW8zMxMXLlyBW5ubvDz84O5uTkOHjwoLY+Li0NSUhL8/f0BAP7+/jh//jxSUlKkPvv374e9vT18fHzKlIWIiIiMg+xiZ86cOQgPD8eCBQvUznaqX78+fvjhB1nr+uKLL3DkyBFcu3YNJ06cwAcffABTU1P07dsXSqUSQ4cORUhICA4fPozIyEgMHjwY/v7+aN68OQCgQ4cO8PHxwYcffoizZ89i7969mDJlCkaNGsWRGyIiIgJQisNYP/30E1avXo127drhk08+kdobNWokzeHR1M2bN9G3b188ePAATk5OaNmyJU6ePAknJycAwJIlS2BiYoLu3bsjJycHQUFBWLFihfR6U1NT7NixAyNHjoS/vz9sbGwwcOBAzJo1S+7bIiIiIiOlEM/e90EDVlZWiI2NRfXq1WFnZ4ezZ8+iZs2auHTpEt566y1kZmbqKqvOpKenQ6lUIi0tDfb29vqOQ0RERBrQ9Ptb9mEsHx8fHDt2rEj777//jsaNG8tdHREREZFOyT6MNW3aNAwcOBC3bt2CSqXCli1bEBcXh59++gk7duzQRUYiIiKiUpM9stO1a1ds374dBw4cgI2NDaZNm4aYmBhs374d7du310VGIiIiolKTPWfHGHHODhERkeHR2ZydmjVr4sGDB0XaU1NTUbNmTbmrIyIiItIp2cXOtWvXUFBQUKQ9JycHt27d0kooIiIiIm3ReILytm3bpL/v3bsXSqVSel5QUICDBw+iRo0aWg1HREREVFYaFzvdunUD8PS+WAMHDlRbZm5ujho1amDRokVaDUdERERUVhoXOyqVCgDg6emJU6dOoUqVKjoLRURERKQtsq+zU3jjTyIiIiJDILvYAYDHjx/jyJEjSEpKQm5urtqyMWPGaCUYERERkTbILnaioqLQqVMnZGVl4fHjx3B0dMT9+/dhbW0NZ2dnFjtERERUocg+9Xz8+PF4//338ejRI1hZWeHkyZO4fv06/Pz8sHDhQl1kJCIiIio12cVOdHQ0Pv/8c5iYmMDU1BQ5OTnw8PDAggULMGnSJF1kJCIiIio12cWOubk5TEyevszZ2RlJSUkAAKVSiRs3bmg3HREREVEZyZ6z07hxY5w6dQp16tRB69atMW3aNNy/fx8///wz6tevr4uMRERERKUme2Rn3rx5cHNzAwDMnTsXr732GkaOHIl79+5h9erVWg9IREREVBa86zl413MiIiJDpLO7ns+ZM4cXFiQiIiKDIbvY2bx5M2rXro0WLVpgxYoVuH//vi5yEREREWmF7GLn7NmzOHfuHNq0aYOFCxfC3d0dnTt3xoYNG5CVlaWLjERERESlVuY5O8ePH8eGDRuwefNmPHnyBOnp6drKVm44Z4eIiMjw6GzOzvNsbGxgZWUFCwsL5OXllXV1RERERFpVqmInMTERc+fORb169dC0aVNERUVh5syZSE5O1nY+IiIiojKRfVHB5s2b49SpU2jYsCEGDx6Mvn374vXXX9dFNiIiIqIyk13stGvXDmvWrIGPj48u8hARERFpFS8qCE5QJiIiMkSafn9rNLITEhKC2bNnw8bGBiEhIS/su3jxYnlJiYiIiHRIo2InKipKOtMqKipKp4GIiIiItImHscDDWERERIZIZ9fZGTJkCDIyMoq0P378GEOGDJG7OiIiIiKdkl3srFu3DtnZ2UXas7Oz8dNPP2klFBEREZG2aHzqeXp6OoQQEEIgIyMDlSpVkpYVFBRg165dcHZ21klIIiIiotLSuNhxcHCAQqGAQqFA3bp1iyxXKBSYOXOmVsMRERERlZXGxc7hw4chhMA777yDP/74A46OjtIyCwsLVK9eHe7u7joJSURERFRaGhc7rVu3BvD0vljVqlWDQqHQWSgiIiIibZE9QfnQoUP4/fffi7Rv3rwZ69at00ooIiIiIm2RXeyEhYWhSpUqRdqdnZ0xb948rYQiIiIi0hbZxU5SUhI8PT2LtFevXh1JSUlaCUVERESkLbKLHWdnZ5w7d65I+9mzZ1G5cmWthCIiIiLSFtnFTt++fTFmzBgcPnwYBQUFKCgowKFDhzB27Fj06dNHFxmJiIiISk3js7EKzZ49G9euXUO7du1gZvb05SqVCh999BHn7BAREVGFI3tkx8LCAps2bUJsbCx++eUXbNmyBVeuXMGaNWtgYWFR6iDz58+HQqHAuHHjpLYnT55g1KhRqFy5MmxtbdG9e3fcvXtX7XVJSUno3LkzrK2t4ezsjAkTJiA/P7/UOYiIiMi4yB7ZKVS3bt1ir6RcGqdOncJ//vMfNGzYUK19/Pjx2LlzJzZv3gylUonRo0cjODgYx48fB/D0NhWdO3eGq6srTpw4gTt37uCjjz6Cubk5R5mIiIgIAKAQQgi5L7p58ya2bduGpKQk5Obmqi1bvHixrHVlZmaiSZMmWLFiBebMmQNfX198++23SEtLg5OTEzZs2IAePXoAAGJjY+Ht7Y2IiAg0b94cu3fvxnvvvYfbt2/DxcUFALBq1Sp89dVXuHfvXokjTTk5OcjJyZGep6enw8PD46W3iCciIqKKIz09HUql8qXf37IPYx08eBBvvPEGVq5ciUWLFuHw4cNYu3Yt1qxZg+joaNlBR40ahc6dOyMwMFCtPTIyEnl5eWrtXl5eqFatGiIiIgAAERERaNCggVToAEBQUBDS09Nx8eLFErcZFhYGpVIpPTw8PGTnJiIiIsMgu9gJDQ3FF198gfPnz6NSpUr4448/cOPGDbRu3Ro9e/aUta5ff/0VZ86cQVhYWJFlycnJsLCwgIODg1q7i4sLkpOTpT7PFjqFywuXveg9pKWlSY8bN27Iyk1ERESGQ/acnZiYGGzcuPHpi83MkJ2dDVtbW8yaNQtdu3bFyJEjNVrPjRs3MHbsWOzfvx+VKlWSG6NMLC0tYWlpWa7bJCIiIv2QPbJjY2MjzdNxc3PDlStXpGX379/XeD2RkZFISUlBkyZNYGZmBjMzMxw5cgRLly6FmZkZXFxckJubi9TUVLXX3b17F66urgAAV1fXImdnFT4v7ENERESvNtnFTvPmzfHf//4XANCpUyd8/vnnmDt3LoYMGYLmzZtrvJ527drh/PnziI6Olh5NmzZF//79pb+bm5vj4MGD0mvi4uKQlJQEf39/AIC/vz/Onz+PlJQUqc/+/fthb28PHx8fuW+NiIiIjJDsw1iLFy9GZmYmAGDmzJnIzMzEpk2bUKdOHVlnYtnZ2aF+/fpqbTY2NqhcubLUPnToUISEhMDR0RH29vb47LPP4O/vLxVVHTp0gI+PDz788EMsWLAAycnJmDJlCkaNGsXDVERERASgFMVOzZo1pb/b2Nhg1apVWg30rCVLlsDExATdu3dHTk4OgoKCsGLFCmm5qakpduzYgZEjR8Lf3x82NjYYOHAgZs2apbNMREREZFhKdZ0dY6PpefpERERUcejsOjtEREREhoTFDhERERk1FjtERERk1Mpc7BQUFCA6OhqPHj3SRh4iIiIirZJd7IwbNw4//vgjgKeFTuvWrdGkSRN4eHjg77//1nY+IiIiojKRXez8/vvvaNSoEQBg+/btSExMRGxsLMaPH4/JkydrPSARERFRWcgudu7fvy/dimHXrl3o2bMn6tatiyFDhuD8+fNaD0hERERUFrKLHRcXF1y6dAkFBQXYs2cP2rdvDwDIysqCqamp1gMSERERlYXsKygPHjwYvXr1gpubGxQKBQIDAwEA//zzD7y8vLQekIiIiKgsZBc7M2bMQP369XHjxg307NlTugeVqakpJk6cqPWARERERGXB20WAt4sgIiIyRJp+f8se2QGAgwcP4uDBg0hJSYFKpVJbtmbNmtKskoiIiEgnZBc7M2fOxKxZs9C0aVNp3g4RERFRRSW72Fm1ahXCw8Px4Ycf6iIPERERkVbJPvU8NzcXLVq00EUWIiIiIq2TXewMGzYMGzZs0EUWIiIiIq2TfRjryZMnWL16NQ4cOICGDRvC3NxcbfnixYu1Fo6IiIiorGQXO+fOnYOvry8A4MKFC2rLOFmZiIiIKhrZxc7hw4d1kYMqgIKCAhw7dgx37tyBm5sbWrVqxVuAEBGRwZM9Z+dZN2/exM2bN7WVhfRoy5YtqF27Ntq2bYt+/fqhbdu2qF27NrZs2aLvaERERGUiu9hRqVSYNWsWlEolqlevjurVq8PBwQGzZ88ucoFBMgxbtmxBjx490KBBA0RERCAjIwMRERFo0KABevTowYKHiIgMmuzbRYSGhuLHH3/EzJkzERAQAAD473//ixkzZmD48OGYO3euToLq0qt8u4iCggLUrl0bDRo0wF9//QUTk//VvyqVCt26dcOFCxeQkJDAQ1pERFShaPr9LbvYcXd3x6pVq9ClSxe19q1bt+LTTz/FrVu3SpdYj17lYufvv/9G27ZtERERgebNmxdZHhERgRYtWuDw4cNo06ZN+QckIiIqgabf37IPYz18+BBeXl5F2r28vPDw4UO5qyM9u3PnDgCgfv36xS4vbC/sR0REZGhkFzuNGjXC999/X6T9+++/R6NGjbQSisqPm5sbgKKXEShU2F7Yj4iIyNDIPox15MgRdO7cGdWqVYO/vz+Ap4c6bty4gV27dqFVq1Y6CapLr/JhLM7ZISIiQ6Wzw1itW7dGfHw8PvjgA6SmpiI1NRXBwcGIi4szyELnVWdqaopFixZhx44d6Natm9rZWN26dcOOHTuwcOFCFjpERGSwZI3s5OXl4d1338WqVatQp04dXeYqV6/yyE6hLVu24PPPP8e1a9ekNk9PTyxcuBDBwcH6C0ZERFQCTb+/ZV1B2dzcHOfOnStzOKp4goOD0bVrV15BmYiIjI7sOTvjx4+HpaUl5s+fr6tM5Y4jO0RERIZHJyM7AJCfn481a9bgwIED8PPzg42Njdpy3vWciIiIKhLZxc6FCxfQpEkTAEB8fLzaMt71nIiIiCoa3vWciIiIjFqZ7npOREREVNHJHtlp27btCw9XHTp0qEyBiIiIiLRJdrHj6+ur9jwvLw/R0dG4cOECBg4cqK1cRERERFohu9hZsmRJse0zZsxAZmZmmQMRERERaZPW5uwMGDAAa9as0dbqiIiIiLRCa8VOREQEKlWqpK3VEREREWmF7MNYz98nSQiBO3fu4PTp05g6darWghERERFpg+xiR6lUqj03MTHBG2+8gVmzZqFDhw5aC0ZERESkDbKLnbVr12pt4ytXrsTKlSulO23Xq1cP06ZNQ8eOHQEAT548weeff45ff/0VOTk5CAoKwooVK+Di4iKtIykpCSNHjsThw4dha2uLgQMHIiwsDGZmst8aERERGaFSzdlJTU3FDz/8gNDQUDx8+BAAcObMGdy6dUvWeqpWrYr58+cjMjISp0+fxjvvvIOuXbvi4sWLAJ7edHT79u3YvHkzjhw5gtu3b6sdRisoKEDnzp2Rm5uLEydOYN26dQgPD8e0adNK87aIiIjICMm+6/m5c+fQrl07ODg44Nq1a4iLi0PNmjUxZcoUJCUl4aeffipTIEdHR3zzzTfo0aMHnJycsGHDBvTo0QMAEBsbC29vb0RERKB58+bYvXs33nvvPdy+fVsa7Vm1ahW++uor3Lt3DxYWFhptk3c9JyIiMjyafn/LHtkJCQnB4MGDkZCQoHb2VadOnXD06NHSpcXTUZpff/0Vjx8/hr+/PyIjI5GXl4fAwECpj5eXF6pVq4aIiAgAT88Aa9CggdphraCgIKSnp0ujQ8XJyclBenq62oOIiIiMk+xi59SpUxgxYkSR9tdffx3JycmyA5w/fx62trawtLTEJ598gj///BM+Pj5ITk6GhYUFHBwc1Pq7uLhI20lOTlYrdAqXFy4rSVhYGJRKpfTw8PCQnZuIiIgMg+xix9LSstiRkPj4eDg5OckO8MYbbyA6Ohr//PMPRo4ciYEDB+LSpUuy1yNHaGgo0tLSpMeNGzd0uj0iIiLSH9nFTpcuXTBr1izk5eUBABQKBZKSkvDVV1+he/fusgNYWFigdu3a8PPzQ1hYGBo1aoTvvvsOrq6uyM3NRWpqqlr/u3fvwtXVFQDg6uqKu3fvFlleuKwklpaWsLe3V3sQERGRcZJd7CxatAiZmZlwdnZGdnY2Wrdujdq1a8POzg5z584tcyCVSoWcnBz4+fnB3NwcBw8elJbFxcUhKSkJ/v7+AAB/f3+cP38eKSkpUp/9+/fD3t4ePj4+Zc5CREREhq9UFxXcv38//vvf/+LcuXPIzMxEkyZN1CYSayo0NBQdO3ZEtWrVkJGRgQ0bNuDvv//G3r17oVQqMXToUISEhMDR0RH29vb47LPP4O/vj+bNmwMAOnToAB8fH3z44YdYsGABkpOTMWXKFIwaNQqWlpay8xAREZHxKfWV91q2bImWLVuWaeMpKSn46KOPcOfOHSiVSjRs2BB79+5F+/btATy9w7qJiQm6d++udlHBQqamptixYwdGjhwJf39/2NjYYODAgZg1a1aZchEREZHxkH2dHQA4ePAgDh48iJSUFKhUKrVlhnjnc15nh4iIyPBo+v0te2Rn5syZmDVrFpo2bQo3NzcoFIoyBSUiIiLSJdnFzqpVqxAeHo4PP/xQF3mIiIiItEr22Vi5ublo0aKFLrIQERERaZ3sYmfYsGHYsGGDLrIQERERaZ3sw1hPnjzB6tWrceDAATRs2BDm5uZqyxcvXqy1cERERERlJbvYOXfuHHx9fQEAFy5cUFvGycpERERU0cgudg4fPqyLHEREREQ6IXvODhEREZEhYbFDRERERo3FDhERERk1FjtERERk1DQqdpo0aYJHjx4BAGbNmoWsrCydhiIiIiLSFo2KnZiYGDx+/BjA03tjZWZm6jQUERERkbZodOq5r68vBg8ejJYtW0IIgYULF8LW1rbYvtOmTdNqQCIiIqKyUAghxMs6xcXFYfr06bhy5QrOnDkDHx8fmJkVrZMUCgXOnDmjk6C6pOkt4omIiKji0PT7W6Ni51kmJiZITk6Gs7NzmUNWFCx2iIiIDI+m39+yr6CsUqnKFMxYZWVlITY2Vq0tOzsb165dQ40aNWBlZVXkNV5eXrC2ti6viERERK8k2cUOAFy5cgXffvstYmJiAAA+Pj4YO3YsatWqpdVwhiQ2NhZ+fn6yXhMZGYkmTZroKBEREREBpSh29u7diy5dusDX1xcBAQEAgOPHj6NevXrYvn072rdvr/WQhsDLywuRkZFqbTExMRgwYADWr18Pb2/vYl9DREREuiV7zk7jxo0RFBSE+fPnq7VPnDgR+/bt4wTlZ5w5cwZ+fn4cwSEiItIBTb+/ZV9BOSYmBkOHDi3SPmTIEFy6dEnu6oiIiIh0Snax4+TkhOjo6CLt0dHRRnWGFhERERkH2XN2hg8fjo8//hhXr15FixYtADyds/P1118jJCRE6wGJiIiIykJ2sTN16lTY2dlh0aJFCA0NBQC4u7tjxowZGDNmjNYDEhEREZWF7GJHoVBg/PjxGD9+PDIyMgAAdnZ2Wg9GREREpA2lus5OIRY5REREVNHJnqBMREREZEhY7BAREZFRY7FDRERERk1WsZOXl4d27dohISFBV3mIiIiItEpWsWNubo5z587pKgsRERGR1sk+jDVgwAD8+OOPushCREREpHWyTz3Pz8/HmjVrcODAAfj5+cHGxkZt+eLFi7UWjoiIiKisZBc7Fy5ckO7gHR8fr7ZMoVBoJxURERGRlsgudg4fPqyLHEREREQ6UepTzy9fvoy9e/ciOzsbACCE0FooIiIiIm2RPbLz4MED9OrVC4cPH4ZCoUBCQgJq1qyJoUOH4rXXXsOiRYt0kbNCSUhIkO4L9iIxMTFqf76MnZ0d6tSpU6ZsREREpE52sTN+/HiYm5sjKSkJ3t7eUnvv3r0REhJi9MVOQkIC6tatK+s1AwYM0LhvfHw8Cx4iIiItkl3s7Nu3D3v37kXVqlXV2uvUqYPr169rLVhFVTiis379erVirzjZ2dm4du0aatSoASsrqxf2jYmJwYABAzQaMSIiIiLNyS52Hj9+DGtr6yLtDx8+hKWlpVZCGQJvb2/prLQXCQgIKIc0REREVBLZE5RbtWqFn376SXquUCigUqmwYMECtG3bVqvhiIiIiMpKdrGzYMECrF69Gh07dkRubi6+/PJL1K9fH0ePHsXXX38ta11hYWF48803YWdnB2dnZ3Tr1g1xcXFqfZ48eYJRo0ahcuXKsLW1Rffu3XH37l21PklJSejcuTOsra3h7OyMCRMmID8/X+5bIyIiIiMku9ipX78+4uPj0bJlS3Tt2hWPHz9GcHAwoqKiUKtWLVnrOnLkCEaNGoWTJ09i//79yMvLQ4cOHfD48WOpz/jx47F9+3Zs3rwZR44cwe3btxEcHCwtLygoQOfOnZGbm4sTJ05g3bp1CA8Px7Rp0+S+NSIiIjJGogJJSUkRAMSRI0eEEEKkpqYKc3NzsXnzZqlPTEyMACAiIiKEEELs2rVLmJiYiOTkZKnPypUrhb29vcjJydFou2lpaQKASEtLe2nfyMhIAUBERkbKeWt6Wy8REZGx0vT7u1QXFXz06BEWLlyIoUOHYujQoVi0aBEePnxY5sIrLS0NAODo6AgAiIyMRF5eHgIDA6U+Xl5eqFatGiIiIgAAERERaNCgAVxcXKQ+QUFBSE9Px8WLF4vdTk5ODtLT09UeREREZJxkFztHjx5FjRo1sHTpUjx69AiPHj3C0qVL4enpiaNHj5Y6iEqlwrhx4xAQEID69esDAJKTk2FhYQEHBwe1vi4uLkhOTpb6PFvoFC4vXFacsLAwKJVK6eHh4VHq3ERERFSxyT71fNSoUejduzdWrlwJU1NTAE/nzXz66acYNWoUzp8/X6ogo0aNwoULF/Df//63VK+XIzQ0FCEhIdLz9PR0FjxERERGSvbIzuXLl/H5559LhQ4AmJqaIiQkBJcvXy5ViNGjR2PHjh04fPiw2sUKXV1dkZubi9TUVLX+d+/ehaurq9Tn+bOzCp8X9nmepaUl7O3t1R5ERERknGQXO02aNCn2Xk8xMTFo1KiRrHUJITB69Gj8+eefOHToEDw9PdWW+/n5wdzcHAcPHpTa4uLikJSUBH9/fwCAv78/zp8/j5SUFKnP/v37YW9vDx8fH1l5iIiIyPhodBjr3Llz0t/HjBmDsWPH4vLly2jevDkA4OTJk1i+fDnmz58va+OjRo3Chg0bsHXrVtjZ2UlzbJRKJaysrKBUKjF06FCEhITA0dER9vb2+Oyzz+Dv7y9tu0OHDvDx8cGHH36IBQsWIDk5GVOmTMGoUaNeqSs6ExERUfE0KnZ8fX2hUCgghJDavvzyyyL9+vXrh969e2u88ZUrVwIA2rRpo9a+du1aDBo0CACwZMkSmJiYoHv37sjJyUFQUBBWrFgh9TU1NcWOHTswcuRI+Pv7w8bGBgMHDsSsWbM0zkFERETGS6NiJzExUScbf7Z4KkmlSpWwfPlyLF++vMQ+1atXx65du7QZjYiIiIyERsVO9erVdZ2DiIiISCdkn3oOALdv38Z///tfpKSkQKVSqS0bM2aMVoIRFScrKwuxsbFqbdnZ2bh27Rpq1KgBKyurIq/x8vKCtbV1eUUkIqIKRnaxEx4ejhEjRsDCwgKVK1eGQqGQlikUChY7pFOxsbHw8/OT9ZrIyEg0adJER4mIiKiik13sTJ06FdOmTUNoaChMTEp1twmiUvPy8kJkZKRaW0xMDAYMGID169fD29u72NcQEdGrS3axk5WVhT59+rDQIb2wtrYucZTG29ubIzhERFSE7Ipl6NCh2Lx5sy6yEBEREWmd7JGdsLAwvPfee9izZw8aNGgAc3NzteWLFy/WWjgiIiKisipVsbN371688cYbAFBkgjIRERFRRSK72Fm0aBHWrFkjXeGYiIiIqCKTPWfH0tISAQEBushCREREpHWyi52xY8di2bJlushCREREpHWyD2P9+++/OHToEHbs2IF69eoVmaC8ZcsWrYUjIiIiKivZxY6DgwOCg4N1kYWIiIhI62QXO2vXrtVFDiIiIiKd4GWQiYiIyKjJHtnx9PR84fV0rl69WqZAVH54B3EiInoVyC52xo0bp/Y8Ly8PUVFR2LNnDyZMmKCtXFQOeAdxIiJ6FcgudsaOHVts+/Lly3H69OkyB6LywzuIExHRq0B2sVOSjh07IjQ0lBOYDQjvIE5ERK8CrU1Q/v333+Ho6Kit1RERERFpheyRncaNG6tNUBZCIDk5Gffu3cOKFSu0Go6IiIiorGQXO926dVN7bmJiAicnJ7Rp04bzOYiIiKjCkV3sTJ8+XRc5iIiIiHSCFxUkIiIio6bxyI6JickLLyYIAAqFAvn5+WUORURERKQtGhc7f/75Z4nLIiIisHTpUqhUKq2EIiIiItIWjYudrl27FmmLi4vDxIkTsX37dvTv3x+zZs3SajjSnoSEBGRkZLy0X0xMjNqfmrCzs0OdOnVKnY2IiEiXSnVRwdu3b2P69OlYt24dgoKCEB0djfr162s7G2lJQkIC6tatK+s1AwYMkNU/Pj6eBQ8REVVIsoqdtLQ0zJs3D8uWLYOvry8OHjyIVq1a6SobaUnhiE5Jt4B41stuBPq8wttLaDJqREREpA8aFzsLFizA119/DVdXV2zcuLHYw1pUsWl6C4iAgIBySENERFQ+NC52Jk6cCCsrK9SuXRvr1q3DunXriu23ZcsWrYUjIiIiKiuNi52PPvropaeeExEREVU0Ghc74eHhOoxBREREpBu8gjIREREZNRY7REREZNRY7BAREZFRY7FDRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGTa/FztGjR/H+++/D3d0dCoUCf/31l9pyIQSmTZsGNzc3WFlZITAwEAkJCWp9Hj58iP79+8Pe3h4ODg4YOnQoMjMzdZZZkf8EjV1NYJUaD9yO1trDKjUejV1NoMh/orPsREREryJZdz3XtsePH6NRo0YYMmQIgoODiyxfsGABli5dinXr1sHT0xNTp05FUFAQLl26hEqVKgEA+vfvjzt37mD//v3Iy8vD4MGD8fHHH2PDhg06yVwpMwlnRtgCR0cAR7W3Xm8AZ0bYIiYzCUAL7a2YiIjoFafXYqdjx47o2LFjscuEEPj2228xZcoU6Q7rP/30E1xcXPDXX3+hT58+iImJwZ49e3Dq1Ck0bdoUALBs2TJ06tQJCxcuhLu7u9YzP7Gthib/ycQvv/wCby8vra03JjYW/fv3x4+dqmltnURERKTnYudFEhMTkZycjMDAQKlNqVSiWbNmiIiIQJ8+fRAREQEHBwep0AGAwMBAmJiY4J9//sEHH3xQ7LpzcnKQk5MjPU9PT9c4lzCrhKhkFbId6gLuvvLfWAmyk1WISlZBmFXS2jqJiIioAk9QTk5OBgC4uLiotbu4uEjLkpOT4ezsrLbczMwMjo6OUp/ihIWFQalUSg8PDw8tpyciIqKKosIWO7oUGhqKtLQ06XHjxg19RyIiIiIdqbDFjqurKwDg7t27au13796Vlrm6uiIlJUVteX5+Ph4+fCj1KY6lpSXs7e3VHkRERGScKuycHU9PT7i6uuLgwYPw9fUF8HRuzT///IORI0cCAPz9/ZGamorIyEj4+fkBAA4dOgSVSoVmzZrpKzppSUJCAjIyMl7aLyYmRu1PTdjZ2aFOnTqlziZHVlYWYmNj1dqys7Nx7do11KhRA1ZWVkVe4+XlBWtr63LJR0Rk7PRa7GRmZuLy5cvS88TERERHR8PR0RHVqlXDuHHjMGfOHNSpU0c69dzd3R3dunUDAHh7e+Pdd9/F8OHDsWrVKuTl5WH06NHo06ePTs7EovKTkJCAunXrynrNgAEDZPWPj48vl4InNjZWKsY1FRkZiSZNmugoERHRq0Wvxc7p06fRtm1b6XlISAgAYODAgQgPD8eXX36Jx48f4+OPP0ZqaipatmyJPXv2SNfYAYBffvkFo0ePRrt27WBiYoLu3btj6dKl5f5eSLsKR3TWr18Pb2/vF/Z92SjJ82JiYjBgwACNRo20wcvLC5GRkcVmKOn9eWnxsgZERK86vRY7bdq0gRCixOUKhQKzZs3CrFmzSuzj6OioswsIkv55e3trNMIREBBQDmlKx9rausT3oOn7IyKi0quwE5SJiIiItIHFDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNT0em8sQ5SVlQUAOHPmzEv7yrlBZUxMjFbyERERkToWOzLFxsYCAIYPH66T9dvZ2Wl9nYr8J2jsagKr1HjgtnYH86xS49HY1QSK/CdaXS8REZG2sNiRqVu3bgAALy8vWFtbv7BvTEwMBgwYgPXr18Pb2/ul67azs0OdOnW0EVNNpcwknBlhCxwdARzV7rq9AZwZYYuYzCQALbS7cgOUkJCAjIyMl/YrHMmTM6Knq88HEZGxY7EjU5UqVTBs2DBZr/H29kaTJk10lOjlnthWQ5P/ZOKXX36Bt5eXVtcdExuL/v3748dO1bS6XkOUkJCAunXrynrNgAEDZPWPj49nwUNEJBOLnVeAMKuEqGQVsh3qAu6+Wl13drIKUckqCLNKWl2vISoc0dFkJE/OfC7gf6OEmowaERGROhY7RFqm6UheQEBAOaQpnaysLGl+2rNeVKRpcmiXiEgfWOwQURGxsbHw8/OT9ZrIyEi9Hq4lIioJix0iKsLLywuRkZFF2l806d5Ly/PBiIi0hcUOERVhbW39wlEafU+6JyKSg1dQJiIiIqPGYoeIiIiMGg9jEb3iNL0QIiD/Yoi8ECIRVQQsdoheYaW5ECIg72KIvBAiEekbix2iV5icCyEC8m9uywshElFFwGKHKiTevLR8yTm7qqJeDJEXQiSikrDYoQqJNy8luXghRCIqCYsdqpB481KSixdCJKKSsNihCok3LyW5eCFEIioJr7NDRERERo0jO0RkcIzl2kCcVE1UPljsvAKysrIAAGfOnHlpXzmnFgOaf4EQaYsxXRvIECdVs0AjQ8Ri5xVQ+B/T8OHDdbYNOzs7na2b6FnGdG0gQ5xUbYgFGhGLnVdAt27dAGj229WL/pMtCW8J8BSvDVS+jOHaQIY4qdoQCzQiFjuvgCpVqmDYsGGyXlMR/5Ot6HhtIHoVGGKBRsRih0hLeG0gehFjmVRtiEozzwjgXCNjwmKHKiRDnFTNawNRSYxpUrUhKs08I4BzjYwJix2qkDipmoyJIU+q1nREqiKPRpVmnlHh6/SFo1HaxWJHS4r7YL7sHz8/lCXjpOrywUnV5cvQJlWXZkSqIo5GGeI8I45GaReLHS150QezpH/8/FCWjJOqy4chTqpmgVZ+5IxIVaTRKGPA0SjtYrGjJcV9MDX5AZPxMMR5RoY4qdoQCzRDp+kvEhVhNAowzENvciawv8jzxUZ5jmJX5NEoFjtaUtIwaUX5x0+6Z4jzjAxxUrUhFmhUfgzx0JshZgaKFmjZ2dlYv359kX6JiYmYOnUqZs+eDU9PzyLLs7Oz1X5J1EWBZjTFzvLly/HNN98gOTkZjRo1wrJly/DWW2/pO1aFxnlG2mWI84zkjEYB8g9V6IIhFmg89FZ+DPHQmyFmLk2BNnXqVI37artAM4piZ9OmTQgJCcGqVavQrFkzfPvttwgKCkJcXBycnZ31Ha/CMsR5RhW5QDPEeUaGOBpliAUa7scb5KE3XRVpuizQCjM3cTOFt+vLMtsgwLOeRuu1SjVl5mdkPrqHxq4mmDNnTrGjNc/KycnB7du34e7uDktLyxf2TUxMxJQpU5D56B4AFjtqFi9ejOHDh2Pw4MEAgFWrVmHnzp1Ys2YNJk6cWKR/Tk4OcnJypOfp6enllrUiMcR5RizQtKuk0ajCz8HzXjQcXdxnRhejUYZYoEXfzMLQ/2RqdZ3P+623Zl+AsuioSNPp3ChmlpRL5hvzgRsv7+4LaNTPG0AnHWQ2+GInNzcXkZGRCA0NldpMTEwQGBiIiIiIYl8TFhaGmTNnllfECssQ5xmxQNOukkajzpw588I5AcUNR5dX5pIKtMIhezmKO2ygiwLt/eBeKDCx0Gnm2jqYk6HrIk0XBRozF8XMgEIIIbS6xnJ2+/ZtvP766zhx4gT8/f2l9i+//BJHjhzBP//8U+Q1xY3seHh4IC0tDfb29uWSm14dxY3sVIRTMV+kNKeQMrN8FT3z/fv38ddff6lts6RRvxcpr1E/QHuZgaK5mfl/Kkrm9PR0KJXKl35/v5LFzvM03VlERERUcWj6/a3d0wL0oEqVKjA1NcXdu3fV2u/evQtXV1c9pSIiIqKKwuCLHQsLC/j5+eHgwYNSm0qlwsGDB9VGeoiIiOjVZPATlAEgJCQEAwcORNOmTfHWW2/h22+/xePHj6Wzs4iIiOjVZRTFTu/evXHv3j1MmzYNycnJ8PX1xZ49e+Di4qLvaERERKRnBj9BWRs4QZmIiMjwvDITlImIiIhehMUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNRY7BAREZFRM4orKJdV4XUV09PT9ZyEiIiINFX4vf2y6yOz2AGQkZEBAPDw8NBzEiIiIpIrIyMDSqWyxOW8XQSe3iX99u3bsLOzg0Kh0Np609PT4eHhgRs3bhjMbSiYuXwYYmbAMHMzc/lg5vLBzOqEEMjIyIC7uztMTEqemcORHQAmJiaoWrWqztZvb29vMB/KQsxcPgwxM2CYuZm5fDBz+WDm/3nRiE4hTlAmIiIio8Zih4iIiIwaix0dsrS0xPTp02FpaanvKBpj5vJhiJkBw8zNzOWDmcsHM5cOJygTERGRUePIDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOzogaGc7W8oOan85eTkSH83lM/Jo0eP9B1BtpSUFFy5ckXfMWS5fPkyFi5cqO8Ysjz/GVapVHpKUnqG8u9QX1js6NjNmzexd+9ebN68GdevXwcAKBSKCv2PKTMzE/n5+VAoFAbzD+ju3buIjIzE/v37kZWVpe84GklKSsLGjRuxYsUKREZG6juOxi5duoTu3bvj4MGDAGAQn5OoqChUqVIFUVFR+o6isXPnzqFVq1bYu3cv7t27p+84Gjl37hyaNWuG77//Hg8fPtR3HI0kJCTgyy+/xKeffooFCxYAwAtvKFkR3LhxA/v378fGjRsRHx8PoOJ/rwBAQUGB/jYuSGfOnTsnXFxcxJtvvilMTU1F06ZNxWeffSYtLygo0GO64l26dEkEBQWJDRs2iNzcXCGEECqVSs+pXuzcuXPC29tbNGrUSCgUCtGpUydx/vx5fcd6oXPnzgkPDw/Rtm1boVQqRdu2bUV0dLS+Y72USqUSAwcOFEqlUrz33nviwIEDassqoujoaGFnZydCQkL0HUVj8fHxonLlymLs2LEiIyOjyPKK+H9HdHS0sLKyEgMHDhQODg5i2bJl+o70UufOnRNVqlQRPXv2FO+8845o3LixWLlypbS8In6mz549K1xcXERQUJBwdHQUzZs3F0OGDJGWV8TPhhBPv1tGjhwpOnToIGbMmCH27t1brttnsaMjqampolGjRmLcuHEiNTVV3Lx5U8yePVvUr19fdO7cWepXkT6YiYmJwsvLS5ibm4sWLVqIP/74o8IXPPHx8cLNzU1MmTJFXL16VcTGxoqqVauKcePG6TtaiWJjY4Wrq6uYPHmyyMrKEklJScLR0VH8+uuv+o6mkU8//VQ0a9ZMfPDBByIwMFDs27dP35FKdP78eWFlZSWmTp0qtd29e1ecO3dO5OXl6THZi33++eeib9++Qoin//Y2btwoli5dKn766SepT0X6vyMqKkpYWVmJiRMnCiGefkZatGghbt26pedkJbt3755o2LCh+PLLL4UQT//P7tixo1i8eLFav4q0n5OTk4W3t7cIDQ0Vubm5IiUlRUyfPl0oFArx3nvvSf0qUmYhhIiJiRFKpVIMGDBA9O3bVwQGBorKlSuLJUuWlFsGFjs6cv36dVG3bl1x4sQJqS0jI0P89ttv4o033hA9e/bUY7qi8vLyxDfffCO6dOkizpw5I9q3by/8/PwqdMGTlZUlRowYIYYOHSpycnJEfn6+EEKIVatWiXr16oknT55UuMyPHz8Ww4YNEx9//LHIy8uT8vXo0UPMnTtXzJo1q8IXPRs2bBDz588X//zzjwgKChIdOnQQUVFR4uuvvxbXr1/XdzxJRkaGaN26tXBwcJDagoODRePGjYVCoRBt27YV3333nR4TlqxHjx5StubNm4tWrVqJWrVqiVq1aolmzZpJX2YV4fN99epVoVQqpUJHCCH++OMPYW9vLw4dOiSEqHhfvkIIERkZKby8vMTly5eltsGDB4vg4GDRr18/MXLkSKm9ouQ/evSo8PX1Fbdv35baLl26JDw8PISjo6NawVORjB8/XnzwwQfS8+vXr4uwsDChUCjE/PnzyyVDxT4wacDs7OyQl5eHEydOSG22trbo0qULJk2ahLi4OPznP//RY0J1pqameOeddzBgwAA0btwYO3fuhKOjI+bNm4ft27cjNze3ws3NKCgoQG5uLlq2bAkLCwuYmpoCAFxdXfHw4UPk5ubqOWFRJiYm6NKlCz799FOYmZlBoVBg9uzZ+OOPP3Dx4kXs2bMHc+fOxeeff67vqCWys7PDtm3b8NZbb2HChAmwsbHBe++9h4kTJ0o3+qsInxNTU1MMHz4cVapUwQcffIB3330Xubm5mDRpEo4dOwZ3d3f88ssvWL9+vb6jFpGfn4/o6GisWrUK9vb2+PPPP/HPP//gl19+QXp6Orp16wbg6TwNfVMoFFi6dCnCwsKktuDgYLRu3RozZsxATk5OhZwDY2Njg6ysLKxfvx75+fmYPXs2fv75Z9SpUwfOzs44dOgQWrVqBaDizOHJycnBo0ePcPv2bbU2Nzc3TJs2DfHx8fjtt9/0mLAoIQSuXbsGCwsLqa1atWr47LPPsGjRIkydOhVr164tlyCkA0+ePBEDBw4U7777rjh37pzassePH4suXbqIPn366Cld8QpHRgplZWVJIzxbtmyRhv23bt2qj3jFevY3nML8J0+eFPXr11f7rTcmJqbcs5UkJydH+vvZs2eFtbW1tE8LCgrEV199JZo2bSpSUlL0FfGF4uLiRLNmzaTngYGBwtraWjRv3lwcO3ZMj8mKys7OFps3bxaenp7C399f3LlzR1r24MEDERAQIPr376/HhOoKRxDWrVsnAgMDRfv27cW0adPU+vz666/Cx8dHXL16VR8R1RQ34lH4727t2rWiVq1a4tSpUyX21ae0tDTx5Zdfitdff120b99emJmZiT/++ENafujQIeHq6ir+/vtvPaZUd/36dVGjRg0xcOBA8euvv4qjR48KpVIpJk+eLIQQ4q233hJfffWVnlMWtWTJEuHl5SUuXbqk1v7w4UMxbtw44e/vr/NDnhWjXDVClpaW+OKLLxAVFYU5c+aonT5qbW2N1q1bIz4+vkKdOVQ4MgI8HTWxsrLCX3/9JY3w/Pnnnxg5ciRGjhyJO3fu6DHp/7i5uQF4eqpoYX6VSoX09HRp306ePBljx45FWlqa3nI+69nfcBo2bIjLly+jS5cuUKlUMDExQa1atZCVlaXWryKpXbs2LC0tcePGDXz00Ue4dOkSFi5cCFdXV4SEhODo0aP6jiipVKkSOnfujGXLlmHatGlwcnIC8PTz7ejoCF9fX9y4caPCnMVSOILQpk0b5OXl4cCBA0hMTFTr4+bmhoKCggox2lBchsLRpr59+0IIgZUrV5bYV5/s7e0xZcoUHDt2DFOmTIGXlxfefvttteW2traws7PTY8r/EUKgWrVq+O233xAVFYVJkyahX79++OSTTzBnzhwAgKenJ27cuKHnpEU1bdoUdnZ2CA8Px82bN6X21157DZ07d8aFCxd0/p1iptO1v8JUKhXq16+PrVu3ol27dlCpVPj000/Rtm1bAEBsbCyqVq0KM7OK+SMwNTVFfn4+rK2tsW3bNnTr1g0DBgyAubk5jh49KhUZFcWz/5Hm5uYiIyMDZmZmmD59OhYsWICIiAgolUo9JiyZq6srgP+9h/Pnz6N+/frSIaGKRAiB/Px8CCHg7+8PExMT7Ny5E76+vqhevTp++ukn1KhRQ98x1VhZWaF9+/YwMTGRCuLCP+/fvw9fX98K9UVc+KW2evVq9OnTBzt37kRYWBhCQ0ORk5ODgwcPonLlyrC3t9d31BIVFBTA0tISX375JRYvXozIyEj4+fnpO1YRdnZ2sLOzg0qlgqWlJWJiYqRDV1u3boWtrS1ef/11Pad8qvDU8jfffBP79+9HTk4OHj9+DC8vLwBPD32mp6ejZcuWek5aVMuWLdG3b1989913sLS0xKBBg1CzZk0AQIMGDVCtWjW1a3fphE7HjV4BBQUFRQ7/FA7XFrafPn1a+Pr6iiZNmohGjRqJrl27Cnt7e72davyizM8r7PfJJ58IR0dHceHCBZ3nK46czBEREeLNN98UX3zxhbC0tBSnT58uj4hFyMksxNPDm5MmTRJOTk56289CaJZ7/fr1olmzZkX2bWZmps7zFUfuvs7KyhKTJk0Sbm5uIjY2VtfxivWizIV/xsXFiR49eggPDw/h5uYm3n77beHo6CiioqLKO66US85+vnTpkrCwsNDrRHBNMt+9e1c0bdpUtG/fXvTq1UsMGTJEvPbaaxVyPxc3Kf3WrVti8uTJokqVKiI+Pr5cMmrq2X09d+5c8cYbb4h+/fqJffv2iatXr4oJEyaIqlWrqh1i1gUWO2Vw8eJF0b9/f9GuXTvxySefiB07dkjLCj+ohX9ev35dbNmyRYwePVp8/fXXeptDoknm5y1btkwoFApx5syZ8oqpRm7m48ePC4VCIRwdHUVkZGR5RpXIzbx161YxcOBA4eHhobf9LITmuXNzc8WjR4+k5/o8K0juvt6yZYvo27evcHNzq9Cf6cIvifv374vo6GgRFhYmfvnlF7Wzhypa5uLMnz9fb8W7JpkLP7uXLl0Sn3zyiXj33XfFiBEjiswvqUiZn3X16lWpcNfn/x0v+gw8W/CEh4eLbt26CRMTE9GgQQNRvXr1csmtEKICnDZhgOLi4tCsWTN07NgRNWrUwO7du2Fubo6WLVtiyZIlAJ4eTrGwsIAQokKcNSEn87Pu3buH9PR01KpVyyAyX7t2Db169UJ4eDh8fHwMIvP169exZcsWdOnSRS/7WdPcOTk5aofXCucZ6UtpPx/r169H7969UadOHYPIrG+lyVxQUKA2D7C8yclc+DnOzs6GlZUV8vLyYG5uXqEzF3r8+DHi4uLg5OQEDw+Pcs8MAPHx8di+fTv69etX4hSH/Px8adrG48ePkZiYCBMTE1SuXBkuLi66D6nzcsoIqVQqMWnSJNGrVy+pLT09XcyZM0f4+vqK4cOHq/X/66+/xN27d8s7phq5mbdu3ar3s4FKk7lwKPTJkyflmrVQWTLr82yVV+3z8aLfQnXpVdnPhpb5+f+j9TFSWZr9rO/vFSGESEhIEI6OjkKhUIjQ0FBx7969In0qwvWgKs6sPAOiUChw+/ZtJCcnS212dnYYM2YMBgwYgKioKMyfPx8AsHPnTowePRpLly7V6xkfcjOPGjUK3333ncFlXrZsGQoKCvT2W3FpM6tUKr2O/r1Knw99jka9KvvZ0DI//3+0Pv4tlmY/6/t75fHjxwgLC0OXLl3w/fffY/78+ViwYAHu37+v1q9wf37zzTeYPXu2PqJyZEeuwgp16dKlIiAgoMjkxocPH4rhw4eLFi1aSNdTmTZtmrhy5Uq5Zy3EzOXDEDMLYZi5mbl8MHP5MMTMQjyd6L98+XLpqu+bNm0SCoVCTJgwocgIz4MHD0Tv3r1Fs2bNxIMHD8o9K4udUrp8+bKoUqWKGDJkiHSjvsIPbFJSklAoFGL79u36jFgEM5cPQ8wshGHmZubywczlwxAzP38G5q+//ioUCoX44osvxP3794UQTw8bP3r0SDx48EDtQrDlicVOGRw6dEhYWlqKUaNGqVWxd+7cEY0aNVK7L1ZFwczlwxAzC2GYuZm5fDBz+TDEzEI8LWgKC7ONGzdKIzy3bt0S48aNE926ddPbXEohWOyU2bZt24SlpaUIDg4Wv/76q7h06ZKYOHGicHNzEzdu3NB3vGIxc/kwxMxCGGZuZi4fzFw+DDGzEE9HoQpPtPj111+Fubm5eOONN4SZmZleT4sXgsWOVkRGRorWrVuL6tWri1q1aom6devq/Qf7MsxcPgwxsxCGmZuZywczlw9DzCzE04KncITnnXfeEY6OjkXuD6kPvM6OlqSnp+Phw4fIyMiAm5sbqlSpou9IL8XM5cMQMwOGmZuZywczlw9DzAw8vcbShAkT8O233yI6OhoNGzbUdySw2CEiIiKtKSgoQHh4OPz8/ODr66vvOABY7BAREZGWiQpy54BCvKggERERaVVFKnQAFjtERERk5FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0R68/fff0OhUCA1NbVctxseHg4HB4cyrePatWtQKBSIjo4usY++3h8RqWOxQ0Q6oVAoXviYMWOGviMS0SvCTN8BiMg43blzR/r7pk2bMG3aNMTFxUlttra2OH36tOz15ubmwsLCQisZiejVwJEdItIJV1dX6aFUKqFQKNTabG1tpb6RkZFo2rQprK2t0aJFC7WiaMaMGfD19cUPP/wAT09PVKpUCQCQmpqKYcOGwcnJCfb29njnnXdw9uxZ6XVnz55F27ZtYWdnB3t7e/j5+RUprvbu3Qtvb2/Y2tri3XffVSvQVCoVZs2ahapVq8LS0hK+vr7Ys2fPC9/zrl27ULduXVhZWaFt27a4du1aWXYhEWkJix0i0rvJkydj0aJFOH36NMzMzDBkyBC15ZcvX8Yff/yBLVu2SHNkevbsiZSUFOzevRuRkZFo0qQJ2rVrh4cPHwIA+vfvj6pVq+LUqVOIjIzExIkTYW5uLq0zKysLCxcuxM8//4yjR48iKSkJX3zxhbT8u+++w6JFi7Bw4UKcO3cOQUFB6NKlCxISEop9Dzdu3EBwcDDef/99REdHY9iwYZg4caKW9xQRlYogItKxtWvXCqVSWaT98OHDAoA4cOCA1LZz504BQGRnZwshhJg+fbowNzcXKSkpUp9jx44Je3t78eTJE7X11apVS/znP/8RQghhZ2cnwsPDS8wDQFy+fFlqW758uXBxcZGeu7u7i7lz56q97s033xSffvqpEEKIxMREAUBERUUJIYQIDQ0VPj4+av2/+uorAUA8evSo2BxEVD44skNEetewYUPp725ubgCAlJQUqa169epwcnKSnp89exaZmZmoXLkybG1tpUdiYiKuXLkCAAgJCcGwYcMQGBiI+fPnS+2FrK2tUatWLbXtFm4zPT0dt2/fRkBAgNprAgICEBMTU+x7iImJQbNmzdTa/P39Nd4HRKQ7nKBMRHr37OGlwrslq1Qqqc3Gxkatf2ZmJtzc3PD3338XWVfhKeUzZsxAv379sHPnTuzevRvTp0/Hr7/+ig8++KDINgu3K4TQxtshogqGIztEZHCaNGmC5ORkmJmZoXbt2mqPKlWqSP3q1q2L8ePHY9++fQgODsbatWs1Wr+9vT3c3d1x/Phxtfbjx4/Dx8en2Nd4e3vj33//VWs7efKkzHdGRLrAYoeIDE5gYCD8/f3RrVs37Nu3D9euXcOJEycwefJknD59GtnZ2Rg9ejT+/vtvXL9+HcePH8epU6fg7e2t8TYmTJiAr7/+Gps2bUJcXBwmTpyI6OhojB07ttj+n3zyCRISEjBhwgTExcVhw4YNCA8P19I7JqKy4GEsIjI4CoUCu3btwuTJkzF48GDcu3cPrq6uePvtt+Hi4gJTU1M8ePAAH330Ee7evYsqVaogODgYM2fO1HgbY8aMQVpaGj7//HOkpKTAx8cH27ZtQ506dYrtX61aNfzxxx8YP348li1bhrfeegvz5s0rcmYZEZU/heBBaiIiIjJiPIxFRERERo3FDhERERk1FjtERERk1FjsEBERkVFjsUNERERGjcUOERERGTUWO0RERGTUWOwQERGRUWOxQ0REREaNxQ4REREZNRY7REREZNT+H7RJMEsxSdpHAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Find corresponding neurons activations between pythia & autoencoder\n",
    "# Get the activations for the best dict features\n",
    "thresholds = [round(0.1*x,1) for x in range(11)]\n",
    "all_activated_neurons = []\n",
    "for threshold in thresholds:\n",
    "    current_activated_neurons = []\n",
    "    for x in range(10):\n",
    "        best_feature = max_indices[x]\n",
    "        best_feature_activations = dictionary_activations[:, best_feature]\n",
    "        # Sort the features by activation, get the indices\n",
    "        nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "        sorted_indices = nonzero_indices[:10]\n",
    "        t = (neuron_activations[sorted_indices, :] > threshold)\n",
    "        # ( And across the first dim)\n",
    "        t = t.all(dim=0)\n",
    "        neurons_activated = t.sum()\n",
    "        current_activated_neurons.append(neurons_activated)\n",
    "        # print(f\"Feature {x} is active for {t.sum()} neurons\")\n",
    "    all_activated_neurons.append(current_activated_neurons)\n",
    "# Plot boxplot w/ plotly\n",
    "\n",
    "plt.boxplot(all_activated_neurons, labels=thresholds)\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel(\"Threshold\")\n",
    "plt.ylabel(\"Number of neurons activated\")\n",
    "plt.title(\"Features/Neurons activated\")\n",
    "# plt.ylim(0, 50)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Find number of non-zero activations for each feature in the dictionary\n",
    "nonzero_activations = dictionary_activations.count_nonzero(dim=0)\n",
    "# clip to 1\n",
    "# nonzero_activations = nonzero_activations.clamp(max=1)\n",
    "# plot against the max cosine similarities\n",
    "# plt.hist(nonzero_activations.cpu().numpy(), bins=100)\n",
    "plt.scatter(max_cosine_similarities, nonzero_activations.cpu().numpy())\n",
    "# x-axis is the max cosine similarity\n",
    "# y-axis is the number of non-zero activations\n",
    "# now setting x-axis\n",
    "plt.xlabel(\"Max Cosine Similarity\")\n",
    "plt.ylabel(\"Number of Non-Zero Activations\")\n",
    "plt.yscale(\"log\")\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Feature Activation Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "from circuitsvis.activations import text_neuron_activations\n",
    "# Get the activations for the best dict features\n",
    "def get_feature_datapoints(feature_index, dictionary_activations, dataset, k=10, setting=\"max\"):\n",
    "    best_feature_activations = dictionary_activations[:, feature_index]\n",
    "    # Sort the features by activation, get the indices\n",
    "    if setting==\"max\":\n",
    "        found_indices = torch.argsort(best_feature_activations, descending=True)[:k]\n",
    "    elif setting==\"uniform\":\n",
    "        min_value = torch.min(best_feature_activations)\n",
    "        max_value = torch.max(best_feature_activations)\n",
    "\n",
    "        # Define the number of bins\n",
    "        num_bins = k\n",
    "\n",
    "        # Calculate the bin boundaries as linear interpolation between min and max\n",
    "        bin_boundaries = torch.linspace(min_value, max_value, num_bins + 1)\n",
    "\n",
    "        # Assign each activation to its respective bin\n",
    "        bins = torch.bucketize(best_feature_activations, bin_boundaries)\n",
    "\n",
    "        # Initialize a list to store the sampled indices\n",
    "        sampled_indices = []\n",
    "\n",
    "        # Sample from each bin\n",
    "        for bin_idx in torch.unique(bins):\n",
    "            # Get the indices corresponding to the current bin\n",
    "            bin_indices = torch.nonzero(bins == bin_idx, as_tuple=False).squeeze(dim=1)\n",
    "            \n",
    "            # Randomly sample from the current bin\n",
    "            sampled_indices.extend(np.random.choice(bin_indices, size=1, replace=False))\n",
    "\n",
    "        # Convert the sampled indices to a PyTorch tensor & reverse order\n",
    "        found_indices = torch.tensor(sampled_indices).long().flip(dims=[0])\n",
    "    else: # random\n",
    "        # get nonzero indices\n",
    "        nonzero_indices = torch.nonzero(best_feature_activations)[:, 0]\n",
    "        # shuffle\n",
    "        shuffled_indices = nonzero_indices[torch.randperm(nonzero_indices.shape[0])]\n",
    "        found_indices = shuffled_indices[:k]\n",
    "    datapoint_indices =[np.unravel_index(i, (datapoints, token_amount)) for i in found_indices]\n",
    "    text_list = []\n",
    "    full_text = []\n",
    "    token_list = []\n",
    "    full_token_list = []\n",
    "    for md, s_ind in datapoint_indices:\n",
    "        md = int(md)\n",
    "        s_ind = int(s_ind)\n",
    "        full_tok = torch.tensor(dataset[md][\"input_ids\"])\n",
    "        full_text.append(model.tokenizer.decode(full_tok))\n",
    "        tok = dataset[md][\"input_ids\"][:s_ind+1]\n",
    "        text = model.tokenizer.decode(tok)\n",
    "        text_list.append(text)\n",
    "        token_list.append(tok)\n",
    "        full_token_list.append(full_tok)\n",
    "    return text_list, full_text, token_list, full_token_list\n",
    "\n",
    "def get_neuron_activation(token, feature, model):\n",
    "    with torch.no_grad():\n",
    "        _, cache = model.run_with_cache(token.to(model.cfg.device))\n",
    "        neuron_act_batch = cache[f\"blocks.{layer}.mlp.hook_post\"]\n",
    "        _, act = smaller_auto_encoder(neuron_act_batch)\n",
    "    return act[0, :, feature].tolist()\n",
    "\n",
    "def ablate_text(text, feature, model, setting=\"plot\"):\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    display_text_list = []\n",
    "    activation_list = []\n",
    "    for t in text:\n",
    "        # Convert text into tokens\n",
    "        if isinstance(t, str): # If the text is a list of tokens\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            tokens = model.to_tokens(t, prepend_bos=False)\n",
    "        else: # t equals tokens\n",
    "            tokens = t\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "        seq_size = tokens.shape[1]\n",
    "        if(seq_size == 1): # If the text is a single token, we can't ablate it\n",
    "            continue\n",
    "        original = get_neuron_activation(tokens, feature, model)[-1]\n",
    "        changed_activations = torch.zeros(seq_size, device=device).cpu()\n",
    "        for i in range(seq_size):\n",
    "            # Remove the i'th token from the input\n",
    "            ablated_tokens = torch.cat((tokens[:,:i], tokens[:,i+1:]), dim=1)\n",
    "            changed_activations[i] += get_neuron_activation(ablated_tokens, feature, model)[-1]\n",
    "        changed_activations -= original\n",
    "        display_text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        activation_list += changed_activations.tolist() + [0.0]\n",
    "    activation_list = torch.tensor(activation_list).reshape(-1,1,1)\n",
    "    if setting == \"plot\":\n",
    "        return text_neuron_activations(tokens=display_text_list, activations=activation_list)\n",
    "    else:\n",
    "        return display_text_list, activation_list\n",
    "def visualize_text(text, feature, model, setting=\"plot\"):\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    display_text_list = []\n",
    "    act_list = []\n",
    "    for t in text:\n",
    "        if isinstance(t, str): # If the text is a list of tokens\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            token = model.to_tokens(t, prepend_bos=False)\n",
    "        else: # t are tokens\n",
    "            token = t\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "        display_text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        act_list += get_neuron_activation(token, feature, model) + [0.0]\n",
    "    act_list = torch.tensor(act_list).reshape(-1,1,1)\n",
    "    return text_neuron_activations(tokens=display_text_list, activations=act_list)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Ablate the feature direction of the tokens\n",
    "# token_list is a list of tokens, convert to tensor of shape (batch_size, seq_len)\n",
    "from einops import rearrange\n",
    "def ablate_feature_direction(tokens, feature, model, autoencoder):\n",
    "    def mlp_ablation_hook(value, hook):\n",
    "        # Rearrange to fit autoencoder\n",
    "        int_val = rearrange(value, 'b s h -> (b s) h')\n",
    "\n",
    "        # Run through the autoencoder\n",
    "        _, act = autoencoder(int_val)\n",
    "        feature_to_ablate = feature # TODO: bring this out of the function\n",
    "\n",
    "        # Subtract value with feature direction*act_of_feature\n",
    "        feature_direction = torch.outer(act[:, feature_to_ablate], autoencoder.decoder.weight[:, feature_to_ablate])\n",
    "        batch, seq_len, hidden_size = value.shape\n",
    "        feature_direction = rearrange(feature_direction, '(b s) h -> b s h', b=batch, s=seq_len)\n",
    "        value -= feature_direction\n",
    "        return value\n",
    "\n",
    "    return model.run_with_hooks(tokens, \n",
    "        fwd_hooks=[(\n",
    "            f\"blocks.{layer}.mlp.hook_post\", \n",
    "            mlp_ablation_hook\n",
    "            )]\n",
    "        )\n",
    "def visualize_logit_diff(text, features=None, setting=\"true_tokens\", verbose=False):\n",
    "    features = best_feature\n",
    "\n",
    "    if features==None:\n",
    "        features = torch.tensor([best_feature])\n",
    "    if isinstance(features, int):\n",
    "        features = torch.tensor([features])\n",
    "    if isinstance(features, list):\n",
    "        features = torch.tensor(features)\n",
    "    if isinstance(text, str):\n",
    "        text = [text]\n",
    "    text_list = []\n",
    "    logit_list = []\n",
    "    for t in text:\n",
    "        tokens = model.to_tokens(t, prepend_bos=False)\n",
    "        with torch.no_grad():\n",
    "            original_logits = model(tokens).log_softmax(-1).cpu()\n",
    "            ablated_logits = ablate_feature_direction(tokens, features, model, smaller_auto_encoder).log_softmax(-1).cpu()\n",
    "        diff_logits = ablated_logits  - original_logits# ablated > original -> negative diff\n",
    "        tokens = tokens.cpu()\n",
    "        if setting == \"true_tokens\":\n",
    "            split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "            gather_tokens = rearrange(tokens[:,1:], \"b s -> b s 1\") # TODO: verify this is correct\n",
    "            # Gather the logits for the true tokens\n",
    "            diff = rearrange(diff_logits[:, :-1].gather(-1,gather_tokens), \"b s n -> (b s n)\")\n",
    "        elif setting == \"max\":\n",
    "            # Negate the diff_logits to see which tokens have the largest effect on the neuron\n",
    "            val, ind = (-1*diff_logits).max(-1)\n",
    "            diff = rearrange(val[:, :-1], \"b s -> (b s)\")\n",
    "            diff*= -1 # Negate the values gathered\n",
    "            split_text = model.to_str_tokens(ind, prepend_bos=False)\n",
    "            gather_tokens = rearrange(ind[:,1:], \"1 s -> 1 s 1\")\n",
    "        split_text = split_text[1:] # Remove the first token since we're not predicting it\n",
    "        if(verbose):\n",
    "            text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "            text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "            orig = rearrange(original_logits[:, :-1].gather(-1, gather_tokens), \"b s n -> (b s n)\")\n",
    "            ablated = rearrange(ablated_logits[:, :-1].gather(-1, gather_tokens), \"b s n -> (b s n)\")\n",
    "            logit_list += orig.tolist() + [0.0]\n",
    "            logit_list += ablated.tolist() + [0.0]\n",
    "        text_list += [x.replace('\\n', '\\\\newline') for x in split_text] + [\"\\n\"]\n",
    "        logit_list += diff.tolist() + [0.0]\n",
    "    logit_list = torch.tensor(logit_list).reshape(-1,1,1)\n",
    "    if verbose:\n",
    "        print(f\"Max & Min logit-diff: {logit_list.max().item():.2f} & {logit_list.min().item():.2f}\")\n",
    "    return text_neuron_activations(tokens=text_list, activations=logit_list)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Feature Case Study\n",
    "We'll look at feature 52, which has an MCS of 0.96 (w/ perfect MCS at 1.0). To get a feel for the feature, Let's plot the feature activation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max feature index: 52\n",
      "MCS: 0.9646809101104736\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCTUlEQVR4nO3de1xVVcL/8S93COQgKiDlBc1C0tLUkC5axkiGmo+Y2pCRWc44YHnJSSvNO2oXTUvNmVKf1Cd17DLpeEEtnZLUKBvzlk0qmgNYCkctAWH9/ujHGY+geRA6G/28X6/90rP22muvvfe5fM86e288jDFGAAAAFuLp7g4AAACcj4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4BiUY0bN9ajjz7q7m5c8V588UU1adJEXl5eatWqlbu7I8m9x/7uu+/W3Xff7ZZ1X4o1a9aoVatW8vf3l4eHh/Lz893dJSdjx46Vh4dHlbX38ccfy8PDQx9//HGVtVmTVfX+hbURUH4DCxYskIeHhz7//PMK5999991q0aLFZa/nH//4h8aOHXvZ7Vwt1q1bpz//+c+64447NH/+fE2ePPmSluvdu7c8PDz0zDPPVHrdW7Zs0dixY93yAbt7926NHTtWBw8e/M3XfTl+/PFH9e7dWwEBAXr99df19ttvKzAwsNrWV/a6LZv8/f0VGRmphIQEzZw5UydPnqyydc2ePVsLFiyosvZqmsaNGzvt63On++67z93dqzZLlizRjBkzLrl+cXGxxo0bpyZNmsjPz09NmjTRxIkTdfbs2errpDsZVLv58+cbSWb79u0Vzu/YsaO56aabnMrOnDljioqKXFpPamqq4ZBeumeeecZ4enqawsLCS16moKDA+Pv7m8aNG5sGDRqY0tLSSq37xRdfNJLMgQMHys2rzLF3xfLly40k89FHH5WbV1hY6NL++C2tXr3aSDIZGRm/yfrKXrfjx483b7/9tnnrrbfM5MmTTefOnY2Hh4dp1KiR+eqrr5yWKS4uNj///LPL67rppptMx44dy5WXlJSYn3/+2ZSUlFR2M2qERo0amVatWpm333673LRhwwZHvRdeeOGKeo9LTEw0jRo1uuT6vXv3Nh4eHmbAgAFmzpw5JiUlxUgyTzzxRPV10o283ReNcDF+fn7u7oLLTp8+Xa3faKtaXl6eAgIC5Ovre8nLrFixQiUlJXrrrbfUqVMnbd68WR07dqzSfrnz2LuyL35reXl5kqSQkJAqa/NSnrNdunRR27ZtHY9HjRqljRs3qmvXrurevbv27NmjgIAASZK3t7e8vavubdXT01P+/v5V1l5VKy0tVVFRUZX08dprr9XDDz9cBb26Mm3fvl3Lli3T6NGjNX78eEnSH//4R9WtW1evvPKK0tLSdPPNN7u5l1XM3QnpalCZEZRGjRqZlJQUx+OioiIzduxYc/311xs/Pz8TGhpq7rjjDrNu3TpjjHEk6fOnMqdOnTLDhg0z1113nfH19TU33HCDefHFF8uNAPz0009m8ODBpk6dOiYoKMh069bNHDlyxEgyL7zwgqNe2TeZXbt2mYceesiEhISYVq1aGWOM+eqrr0xKSoqJiooyfn5+Jjw83PTv39/88MMPTusqa2Pfvn0mOTnZBAcHm7p165rnn3/elJaWmuzsbNO9e3dTq1YtEx4ebl566aVL2t/FxcVm/PjxpkmTJsbX19c0atTIjBo1ypw5c8ZRp6J9NX/+/F9t+9577zX333+/McaY5s2bX/Cby549e8yDDz5o6tata/z9/c0NN9xgnn32WaftPn8qG00599hv377dSDILFiwot441a9YYSebDDz80xhhz8OBBM2jQIHPDDTcYf39/Exoaanr16uU0SlP2XDx/KhtN6dixY7lv8rm5ueaxxx4zYWFhxs/Pz9x8883l+nPgwAEjybz44ovmjTfecOz7tm3bmm3btjnV/c9//mMeffRRc+211xpfX18TERFhunfvXuFoUpmOHTuW6/O5r49ly5aZW2+91fj7+5s6deqY5ORkc+TIEac2UlJSTGBgoPn2229Nly5dTFBQkHnggQcuuM5fe91OnjzZSDLz5s1zlF3oG/7bb79t2rVrZwICAkxISIi56667zNq1a40xvxzv87et7Bh89NFHFY52ubK9R44cMQ888IAJDAw0devWNcOHDzdnz551qvviiy+auLg4Exoaavz9/c2tt95qli9fXm47JJnU1FSzaNEiExMTY7y9vc27775rGjVqZLp3716u/s8//2yCg4PNwIEDK9yHZRo1amQSExMvWseYi+/fsv1Ru3Zt06dPH5Odne1Up+x99quvvjIdOnQwAQEBpmnTpo7t/Pjjj81tt93meL1WNFJ35MgR079/fxMWFmZ8fX1NTEyMefPNN53qlB2zpUuXmokTJ5prr73W+Pn5mU6dOpn9+/c79ef8436x0ZSXX37Z8Z57rrL3iLL3lysJIyi/oYKCAv3www/lyouLi3912bFjxyo9PV2PP/64brvtNtntdn3++ef64osv9Lvf/U5/+MMfdPToUWVkZOjtt992WtYYo+7du+ujjz7SgAED1KpVK61du1YjRozQ999/r+nTpzvqPvroo1q2bJn69eun9u3ba9OmTUpMTLxgvx588EE1a9ZMkydPljFGkpSRkaHvvvtO/fv3V0REhHbt2qV58+Zp165d+uyzz8qd5NanTx81b95cU6ZM0apVqzRx4kSFhobqjTfeUKdOnTR16lQtXrxYTz/9tNq1a6cOHTpcdF89/vjjWrhwoXr16qXhw4dr69atSk9P1549e/Tee+9Jkt5++23NmzdP27Zt01//+ldJ0u23337Rdo8ePaqPPvpICxculCQ99NBDmj59ul577TWnkYd//etfuuuuu+Tj46OBAweqcePG+ve//60PP/xQkyZNUs+ePfXNN9/o//7v/zR9+nTVrVtXklSvXr1y62zbtq2aNGmiZcuWKSUlxWne0qVLVbt2bSUkJEj65RvWli1b1LdvX1133XU6ePCg5syZo7vvvlu7d+/WNddcow4dOujJJ5/UzJkz9eyzz6p58+aS5Pj3fD///LPuvvtuffvtt0pLS1NUVJSWL1+uRx99VPn5+Xrqqaec6i9ZskQnT57UH/7wB3l4eGjatGnq2bOnvvvuO/n4+EiSkpKStGvXLg0ePFiNGzdWXl6eMjIylJ2drcaNG1fYj+eee0433nij5s2bp/HjxysqKkpNmzaV9Mu5Iv3791e7du2Unp6u3Nxcvfrqq/r000/15ZdfOo24nD17VgkJCbrzzjv10ksv6ZprrqlwfZeiX79+evbZZ7Vu3To98cQTF6w3btw4jR07VrfffrvGjx8vX19fbd26VRs3blTnzp01Y8YMDR48WEFBQXruueckSeHh4Rdsz5XtLSkpUUJCgmJjY/XSSy9p/fr1evnll9W0aVMNGjTIUe/VV19V9+7dlZycrKKiIr3zzjt68MEHtXLlynKv/40bN2rZsmVKS0tT3bp1FRUVpYcffljTpk3T8ePHFRoa6qj74Ycfym63X9LISHFxcYXvj4GBgY4RqopMmjRJo0ePVu/evfX444/r2LFjmjVrljp06FBuf5w4cUJdu3ZV37599eCDD2rOnDnq27evFi9erCFDhuiPf/yjfv/73+vFF19Ur169dPjwYdWqVUuSlJubq/bt28vDw0NpaWmqV6+eVq9erQEDBshut2vIkCFO/ZoyZYo8PT319NNPq6CgQNOmTVNycrK2bt0q6ZfndEFBgY4cOeJ4Dw4KCrrgdhYWFkpSuX1R9hzOysq64LI1lrsT0tXgQt9az51+bQTllltu+dVvGBc6B+X99983kszEiROdynv16mU8PDzMt99+a4wxJisry0gyQ4YMcar36KOPXnAE5aGHHiq3vp9++qlc2f/93/8ZSWbz5s3l2jj329XZs2fNddddZzw8PMyUKVMc5SdOnDABAQFO+6QiO3bsMJLM448/7lT+9NNPG0lm48aNjrKyb5iX6qWXXjIBAQHGbrcbY4z55ptvjCTz3nvvOdXr0KGDqVWrljl06JBT+bmjVRc7B+X8Yz9q1Cjj4+Njjh8/7igrLCw0ISEh5rHHHnOUVbTfMzMzjSTzv//7v46yi52Dcv4IyowZM4wks2jRIkdZUVGRiYuLM0FBQY59UTaCUqdOHad+fvDBB06jPCdOnHCMtLiqohGNoqIiExYWZlq0aOF07sfKlSuNJDNmzBhHWdko48iRIyu9vvPZbDbTunVrx+Pzv+Hv37/feHp6mv/5n/8pdx7Juc+HC52Dcv4ISmW2d/z48U5ttm7d2rRp08ap7PznTlFRkWnRooXp1KmTU7kk4+npWe5b/L59+4wkM2fOHKfy7t27m8aNG//quVoVjSKVTenp6Y565+/fgwcPGi8vLzNp0iSn9nbu3Gm8vb2dystGLJYsWeIo27t3r2ObPvvsM0f52rVry42qDhgwwNSvX7/cSHDfvn2NzWZz7MOyY9a8eXOn87leffVVI8ns3LnTUebKOSgrVqwwkszbb7/tVD537lwjybRo0eKS2qlJuIrnN/T6668rIyOj3HQpvxuGhIRo165d2r9/v8vr/cc//iEvLy89+eSTTuXDhw+XMUarV6+W9MslnJL0pz/9yane4MGDL9j2H//4x3Jl5yb8M2fO6IcfflD79u0lSV988UW5+o8//rjj/15eXmrbtq2MMRowYICjPCQkRDfeeKO+++67C/ZF+mVbJWnYsGFO5cOHD5ckrVq16qLLX8zixYuVmJjo+EbVrFkztWnTRosXL3bUOXbsmDZv3qzHHntMDRs2dFq+spdH9unTR8XFxXr33XcdZevWrVN+fr769OnjKDt3vxcXF+vHH3/U9ddfr5CQkAr3+6X4xz/+oYiICD300EOOMh8fHz355JM6deqUNm3aVK6vtWvXdjy+6667JMlx3MrO+fn444914sSJSvXpXJ9//rny8vL0pz/9yek8iMTEREVHR1d4vM8dObhcQUFBF72a5/3331dpaanGjBkjT0/nt9vKPB8qs73nv0bvuuuucq+jc587J06cUEFBge66664KnzcdO3ZUTEyMU9kNN9yg2NhYp9fC8ePHtXr1aiUnJ1/StsbGxlb4/njuc+987777rkpLS9W7d2/98MMPjikiIkLNmjXTRx995FQ/KChIffv2dTy+8cYbFRISoubNmys2NtapL9J/n7fGGK1YsULdunWTMcZpXQkJCSooKCi3r/r37+80snr+a8FV999/vxo1aqSnn35a7777rg4dOqRly5bpueeek7e3t37++edKtWtl/MTzG7rtttucTrYrU7t27QqHNs81fvx4PfDAA7rhhhvUokUL3XffferXr98lhZtDhw4pMjLS8cFapmxY/9ChQ45/PT09FRUV5VTv+uuvv2Db59eVfnljGjdunN555x3HiY1lCgoKytU//4PcZrPJ39/f8dPHueU//vjjBfty7jac3+eIiAiFhIQ4ttVVe/bs0ZdffqlHHnlE3377raP87rvv1uuvvy673a7g4GDHm09VXDZe5pZbblF0dLSWLl3qCG1Lly5V3bp11alTJ0e9n3/+Wenp6Zo/f76+//57x09uUsX7/VIcOnRIzZo1K/fhev5zp8z5x7IsrJSFET8/P02dOlXDhw9XeHi42rdvr65du+qRRx5RREREpfon/fJBc77o6Gh98sknTmXe3t667rrrXF7PhZw6dUphYWEXnP/vf/9bnp6e5T7QK8vV7fX39y/302Ht2rXLhcOVK1dq4sSJ2rFjh+OnBKniEFXRa16SHnnkEaWlpenQoUNq1KiRli9fruLiYvXr1++Stq1u3bqKj4+/pLpl9u/fL2OMmjVrVuH8sp8Vy1x33XXltslms6lBgwblyqT/Pm+PHTum/Px8zZs3T/PmzatwXee/1/3aa8FV/v7+WrVqlXr37q2kpCRJv7yepk2bpkmTJl3056GaioBSQ3To0EH//ve/9cEHH2jdunX661//qunTp2vu3LlOIxC/tYp+G+7du7e2bNmiESNGqFWrVgoKClJpaanuu+8+lZaWlqvv5eV1SWWSnD50L6aqb+a0aNEiSdLQoUM1dOjQcvNXrFih/v37V+k6z9WnTx9NmjRJP/zwg2rVqqW///3veuihh5yuGBk8eLDmz5+vIUOGKC4uTjabTR4eHurbt2+F+706XMpxGzJkiLp166b3339fa9eu1ejRo5Wenq6NGzeqdevW1do/Pz+/cmGrso4cOaKCgoKLBnh3u9DxONc///lPde/eXR06dNDs2bNVv359+fj4aP78+VqyZEm5+hc6H6Rv374aOnSoFi9erGeffVaLFi1S27ZtKwxTVaW0tFQeHh5avXp1hdt6/of2hfbHrz1vy14/Dz/8cLlzwcqc/2Xxct/DKnLTTTfp66+/1u7du3XixAnFxMQoICBAQ4cOrfKrCa2AgFKDhIaGqn///urfv79OnTqlDh06aOzYsY6AcqEP5UaNGmn9+vU6efKk0yjK3r17HfPL/i0tLdWBAwecvpGcO2Lwa06cOKENGzZo3LhxGjNmjKO8Mj9NVUbZNuzfv9/pxM/c3Fzl5+c7ttUVxhgtWbJE99xzT7mfvyRpwoQJWrx4sfr3768mTZpIkr7++uuLtulqgOrTp4/GjRunFStWKDw8XHa73WmoWpL+9re/KSUlRS+//LKj7MyZM+VuBufKuhs1aqR//etfKi0tdfpgP/+546qmTZtq+PDhGj58uPbv369WrVrp5ZdfdgRBV/onSfv27XMaTSorq2z/LkXZyehlJylXpGnTpiotLdXu3bsveqfiSz0m1bG9K1askL+/v9auXet0ifv8+fNdaic0NFSJiYlavHixkpOT9emnn7p0E7LKaNq0qYwxioqK0g033FBt66lXr55q1aqlkpISl0d5LqYyX6Q8PDx00003OR7/4x//UGlpaZX2yyo4B6WGOP+njaCgIF1//fVOw7Fl93M4/wPp/vvvV0lJiV577TWn8unTp8vDw0NdunSR9N832tmzZzvVmzVr1iX3s+xbw/nfEqr7jarM/fffX+H6XnnlFUm66BVJF/Lpp5/q4MGD6t+/v3r16lVu6tOnjz766CMdPXpU9erVU4cOHfTWW28pOzvbqZ1z98mFjtWFNG/eXC1bttTSpUu1dOlS1a9fv9zVTF5eXuX2+6xZs1RSUuJU5sq677//fuXk5Gjp0qWOsrNnz2rWrFkKCgpy+VvbTz/9pDNnzjiVNW3aVLVq1XJ6Ll+qtm3bKiwsTHPnznVafvXq1dqzZ0+ljvel2LhxoyZMmKCoqCglJydfsF6PHj3k6emp8ePHlxvFOv/5cCnHozq218vLSx4eHk7Pk4MHD+r99993ua1+/fpp9+7dGjFihLy8vMqF6KrWs2dPeXl5ady4ceWe+8aYX/1J+FJ5eXkpKSlJK1asqPDLx7FjxyrVbmBgYKV/fpV++Vl39OjRql+//kXP1ampGEGpIWJiYnT33XerTZs2Cg0N1eeff66//e1vSktLc9Rp06aNJOnJJ59UQkKC4w2iW7duuueee/Tcc8/p4MGDuuWWW7Ru3Tp98MEHGjJkiONyzTZt2igpKUkzZszQjz/+6LjM+JtvvpF0aWk/ODhYHTp00LRp01RcXKxrr71W69at04EDB6phr5R3yy23KCUlRfPmzVN+fr46duyobdu2aeHCherRo4fuuecel9tcvHixvLy8Lvjm3717dz333HN65513NGzYMM2cOVN33nmnbr31Vg0cOFBRUVE6ePCgVq1apR07dkj677F67rnn1LdvX/n4+Khbt24XvWlYnz59NGbMGPn7+2vAgAHlfqro2rWr3n77bdlsNsXExCgzM1Pr169XnTp1nOq1atVKXl5emjp1qgoKCuTn56dOnTpVeC7FwIED9cYbb+jRRx9VVlaWGjdurL/97W+Ob8fnn9f0a7755hvde++96t27t2JiYuTt7a333ntPubm5lfow8/Hx0dSpU9W/f3917NhRDz30kOOy28aNG1f4c5yrVq9erb179+rs2bPKzc3Vxo0blZGRoUaNGunvf//7RW9Sdv311+u5557ThAkTdNddd6lnz57y8/PT9u3bFRkZqfT0dEm/PB/mzJmjiRMn6vrrr1dYWFi5EZLq2t7ExES98soruu+++/T73/9eeXl5ev3113X99dfrX//6l8tt1alTR8uXL1eXLl0uen7O+b7//vsKR9CCgoLUo0ePCpdp2rSpJk6cqFGjRungwYPq0aOHatWqpQMHDui9997TwIED9fTTT7u0DRcyZcoUffTRR4qNjdUTTzyhmJgYHT9+XF988YXW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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "max_mcs= True\n",
    "if max_mcs:\n",
    "    N = 52\n",
    "    best_feature = max_indices[N]\n",
    "else: # by threshold for MCS\n",
    "    threshold = 0.3\n",
    "    error = 0.01\n",
    "    max_cosine_similarities[max_indices]\n",
    "    threshold_indices = np.nonzero((max_cosine_similarities[max_indices] > threshold-error) & (max_cosine_similarities[max_indices] < threshold+error))\n",
    "    N = threshold_indices[0][0]\n",
    "    best_feature = max_indices[N]\n",
    "print(f\"Max feature index: {N}\")\n",
    "print(f\"MCS: {max_cosine_similarities[best_feature]}\")\n",
    "threshold = 0.01\n",
    "max_elements = (dictionary_activations[:, max_indices[x]]>threshold)\n",
    "plt.hist(dictionary_activations[max_elements, max_indices[x]], bins=20)\n",
    "plt.title('Histogram of Activations for Dictionary Element ' + str(x))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Percentage of datapoints that activate feature 52: 0.52%\n"
     ]
    }
   ],
   "source": [
    "percentage_of_features_above_threshold = max_elements.sum() / dictionary_activations.shape[0] * 100\n",
    "print(f\"Percentage of datapoints that activate feature {N}: {percentage_of_features_above_threshold:.2f}%\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Top Activating Examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-04186a1d-ddfd\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-04186a1d-ddfd\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Opt\", \"imal\", \"ization\", \" of\", \" sum\", \" $\", \"f\", \"(\", \"x\", \"_\", \"i\", \",\", \" x\", \"_\", \"j\", \")$\", \" for\", \" all\", \" $\", \"\\n\", \"---\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"Let\", \" $(\", \"R\", \",{\\\\\", \"mathfrak\", \"{\", \"m\", \"}})$\", \" be\", \" a\", \" complete\", \" No\", \"ethe\", \"rian\", \" local\", \" ring\", \" and\", \" let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \"ing\", \" that\", \" a\", \" topological\", \" space\", \" is\", \" ${\\\\\", \"rm\", \" T\", \"}_\", \"1\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"$\", \"L\", \"(\", \"M\", \")\", \" =\", \" L\", \"$\", \" where\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Does\", \" there\", \" exist\", \" a\", \" ``\", \"continuous\", \" measure\", \"''\", \" on\", \" a\", \" metric\", \" space\", \"?\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \" that\", \" $\", \"F\", \"(\", \"G\", \"(\", \"x\", \"))=\", \"G\", \"(\", \"F\", \"(\", \"x\", \")).\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"---\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"We\", \" give\", \" a\", \" detailed\", \" analysis\", \" of\", \" the\", \" proportion\", \" of\", \" elements\", \" in\", \" the\", \" symmetric\", \" group\", \" on\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Are\", \" reflections\", \" in\", \" higher\", \" dimensions\", \" commutative\", \"?\", \"\\\\newline\", \"\\\\newline\", \"If\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"The\", \" homotopy\", \" category\", \" of\", \" the\", \" category\", \" of\", \" enriched\", \" categories\", \"\\\\newline\", \"\\\\newline\", \"We\", \" know\", \" that\", \" if\", \" $\\\\\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Joint\", \" Prob\", \"ability\", \" distribution\", \" for\", \" $\", \"\\n\"], \"activations\": [[[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.5170822143554688]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[5.275140285491943]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[1.2274881601333618]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[5.086065769195557]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[2.770442008972168]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.032735347747802734]], [[0.0]], [[0.0]], [[0.0]], [[5.031132221221924]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[1.3515456914901733]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.852550983428955]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.2027301788330078]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.608108043670654]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[2.9194107055664062]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.41090625524520874]], [[0.0]], [[0.0]], [[0.0]], [[4.583319664001465]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.5576348304748535]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.533557415008545]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.490780353546143]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.487669467926025]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc16c443e80>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text_list, full_text, token_list, full_token_list = get_feature_datapoints(best_feature, dictionary_activations, dataset, setting=\"max\")\n",
    "visualize_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ablate Context\n",
    "Ablate context one token at a time & see effect on activation of feature on last token. Negative (red) means the feature activated less when ablating that token."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-8cb55d57-0bf5\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-8cb55d57-0bf5\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Opt\", \"imal\", \"ization\", \" of\", \" sum\", \" $\", \"f\", \"(\", \"x\", \"_\", \"i\", \",\", \" x\", \"_\", \"j\", \")$\", \" for\", \" all\", \" $\", \"\\n\", \"---\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"Let\", \" $(\", \"R\", \",{\\\\\", \"mathfrak\", \"{\", \"m\", \"}})$\", \" be\", \" a\", \" complete\", \" No\", \"ethe\", \"rian\", \" local\", \" ring\", \" and\", \" let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \"ing\", \" that\", \" a\", \" topological\", \" space\", \" is\", \" ${\\\\\", \"rm\", \" T\", \"}_\", \"1\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"$\", \"L\", \"(\", \"M\", \")\", \" =\", \" L\", \"$\", \" where\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Does\", \" there\", \" exist\", \" a\", \" ``\", \"continuous\", \" measure\", \"''\", \" on\", \" a\", \" metric\", \" space\", \"?\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \" that\", \" $\", \"F\", \"(\", \"G\", \"(\", \"x\", \"))=\", \"G\", \"(\", \"F\", \"(\", \"x\", \")).\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"\\n\", \"---\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"We\", \" give\", \" a\", \" detailed\", \" analysis\", \" of\", \" the\", \" proportion\", \" of\", \" elements\", \" in\", \" the\", \" symmetric\", \" group\", \" on\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Are\", \" reflections\", \" in\", \" higher\", \" dimensions\", \" commutative\", \"?\", \"\\\\newline\", \"\\\\newline\", \"If\", \" $\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"The\", \" homotopy\", \" category\", \" of\", \" the\", \" category\", \" of\", \" enriched\", \" categories\", \"\\\\newline\", \"\\\\newline\", \"We\", \" know\", \" that\", \" if\", \" $\\\\\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Joint\", \" Prob\", \"ability\", \" distribution\", \" for\", \" $\", \"\\n\"], \"activations\": [[[-0.18972539901733398]], [[-0.07608318328857422]], [[-0.00882720947265625]], [[-0.00882720947265625]], [[-0.0577702522277832]], [[-0.05355501174926758]], [[0.017156124114990234]], [[-0.03071737289428711]], [[-0.04977560043334961]], [[-0.007885456085205078]], [[-0.0009865760803222656]], [[0.028324127197265625]], [[0.008063793182373047]], [[-0.010976314544677734]], [[0.034453392028808594]], [[-0.1310901641845703]], [[-0.0644993782043457]], [[0.042456626892089844]], [[0.055869102478027344]], [[-1.5915966033935547]], [[-0.991948127746582]], [[-0.13096094131469727]], [[-5.275140285491943]], [[0.0]], [[-0.06434965133666992]], [[-0.02427053451538086]], [[-0.026624202728271484]], [[0.012595653533935547]], [[0.01923990249633789]], [[-0.037247657775878906]], [[0.05174541473388672]], [[-0.0352630615234375]], [[-0.015040874481201172]], [[-0.05875682830810547]], [[-0.021831035614013672]], [[-0.009511947631835938]], [[-0.5500893592834473]], [[0.0058116912841796875]], [[-0.0553593635559082]], [[-0.046372413635253906]], [[0.002720355987548828]], [[-0.004179477691650391]], [[0.006078243255615234]], [[-0.007307529449462891]], [[0.012619972229003906]], [[-0.5381946563720703]], [[-0.4721207618713379]], [[-5.086065769195557]], [[0.0]], [[-0.2612481117248535]], [[0.027960777282714844]], [[-0.027706623077392578]], [[-0.027706623077392578]], [[0.010297775268554688]], [[0.005654335021972656]], [[-0.017395496368408203]], [[-0.04256153106689453]], [[-0.022264480590820312]], [[-0.0077342987060546875]], [[-0.04436206817626953]], [[-0.13344907760620117]], [[-0.0721745491027832]], [[-0.01693105697631836]], [[-0.08600330352783203]], [[0.012529850006103516]], [[-0.27494287490844727]], [[0.03020000457763672]], [[0.03020000457763672]], [[-1.175797462463379]], [[-5.031132221221924]], [[0.0]], [[-0.2059040069580078]], [[-0.03974151611328125]], [[-0.042525291442871094]], [[-0.042525291442871094]], [[-0.3116941452026367]], [[-0.017532825469970703]], [[-0.006175041198730469]], [[-0.04978466033935547]], [[-0.38941431045532227]], [[0.08332633972167969]], [[0.019484519958496094]], [[-0.6424350738525391]], [[-1.5003938674926758]], [[-4.852550983428955]], [[0.0]], [[-0.5113906860351562]], [[0.05257129669189453]], [[0.014359474182128906]], [[0.014359474182128906]], [[0.07217645645141602]], [[0.018219470977783203]], [[0.010731220245361328]], [[0.014546394348144531]], [[-0.039441585540771484]], [[-0.004652976989746094]], [[-0.04332160949707031]], [[-0.04360389709472656]], [[-0.037554264068603516]], [[0.030475616455078125]], [[-0.35521888732910156]], [[-0.023288249969482422]], [[0.02318286895751953]], [[-0.03920793533325195]], [[-0.03920793533325195]], [[-0.8102812767028809]], [[-4.608108043670654]], [[0.0]], [[-0.4995455741882324]], [[0.019836902618408203]], [[0.00946664810180664]], [[0.00946664810180664]], [[0.06500959396362305]], [[-0.008100032806396484]], [[-0.06618595123291016]], [[0.009035110473632812]], [[0.035712242126464844]], [[0.0012083053588867188]], [[0.04634809494018555]], [[0.0372772216796875]], [[-0.2666802406311035]], [[-0.020837783813476562]], [[0.04170513153076172]], [[0.003589630126953125]], [[0.034777164459228516]], [[0.06565141677856445]], [[-0.14499902725219727]], [[-0.33800411224365234]], [[0.018211841583251953]], [[0.018211841583251953]], [[-1.0356431007385254]], [[-4.583319664001465]], [[0.0]], [[-0.05514240264892578]], [[0.02278614044189453]], [[-0.2869110107421875]], [[0.0384364128112793]], [[0.02298450469970703]], [[-0.05933570861816406]], [[-0.04183483123779297]], [[-0.04400920867919922]], [[0.0060596466064453125]], [[0.02859354019165039]], [[-0.026788711547851562]], [[-0.011155128479003906]], [[0.023571014404296875]], [[-0.021965980529785156]], [[-0.02563762664794922]], [[-0.021100997924804688]], [[-0.01841259002685547]], [[-0.04858589172363281]], [[-0.06129598617553711]], [[-0.774167537689209]], [[-4.5576348304748535]], [[0.0]], [[-0.30401611328125]], [[-0.009005069732666016]], [[-0.08103036880493164]], [[-0.08103036880493164]], [[-0.005238533020019531]], [[0.0003619194030761719]], [[-0.1502666473388672]], [[-0.00209808349609375]], [[-0.11714458465576172]], [[-0.4604978561401367]], [[-0.18721866607666016]], [[-0.030259132385253906]], [[-0.030259132385253906]], [[-0.8871488571166992]], [[-4.533557415008545]], [[0.0]], [[-0.23319530487060547]], [[0.057178497314453125]], [[-0.01961040496826172]], [[-0.01961040496826172]], [[-0.011691093444824219]], [[-0.04220867156982422]], [[-0.019623756408691406]], [[-0.02571725845336914]], [[-0.020765304565429688]], [[-0.0017781257629394531]], [[-0.012522697448730469]], [[-0.02527618408203125]], [[-0.08242225646972656]], [[0.042694091796875]], [[0.042694091796875]], [[-0.10736656188964844]], [[0.0813298225402832]], [[0.07688522338867188]], [[-0.024602890014648438]], [[-4.490780353546143]], [[0.0]], [[-0.39113378524780273]], [[-0.1547842025756836]], [[-0.26674365997314453]], [[-0.26674365997314453]], [[-0.07209300994873047]], [[-0.21542930603027344]], [[-0.08980035781860352]], [[-0.4207792282104492]], [[-1.1205382347106934]], [[-4.487669467926025]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc16c443f40>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ablate_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Proposed Meaning: These detect \\$ for latex. Notably removing token )\\$ makes the final “ \\$” go from 5 to 3.5 activation. Similarly for “where/let/for”. "
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Ablate Feature Direction\n",
    "We can ablate the feature direction by subtracting the original neuron activation by the feature’s (direction*activation). To clarify, the dictionary features are supposed to reconstruct the neuron activation using a sparse linear combination of features. This does rely on the reconstruction being meaningful, which has not been confirmed yet."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-5ca40eb8-4d29\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-5ca40eb8-4d29\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\":\", \"\\\\newline\", \"\\\\newline\", \"Opt\", \"imal\", \"ization\", \" of\", \" sum\", \" $\", \"f\", \"(\", \"x\", \"_\", \"i\", \",\", \" x\", \"_\", \"j\", \")$\", \" for\", \" all\", \" $\", \"i\", \" <\", \"\\n\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"Let\", \" $(\", \"R\", \",{\\\\\", \"mathfrak\", \"{\", \"m\", \"}})$\", \" be\", \" a\", \" complete\", \" No\", \"ethe\", \"rian\", \" local\", \" ring\", \" and\", \" let\", \" $\", \"M\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \"ing\", \" that\", \" a\", \" topological\", \" space\", \" is\", \" ${\\\\\", \"rm\", \" T\", \"}_\", \"1\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"X\", \"$\", \" be\", \" a\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"$\", \"L\", \"(\", \"M\", \")\", \" =\", \" L\", \"$\", \" where\", \" $\", \"M\", \"$\", \" is\", \" a\", \" $\", \"TM\", \"$\", \" that\", \" moves\", \" only\", \" to\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Does\", \" there\", \" exist\", \" a\", \" ``\", \"continuous\", \" measure\", \"''\", \" on\", \" a\", \" metric\", \" space\", \"?\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"X\", \"$\", \" be\", \" a\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Show\", \" that\", \" $\", \"F\", \"(\", \"G\", \"(\", \"x\", \"))=\", \"G\", \"(\", \"F\", \"(\", \"x\", \")).\", \"$\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" $\", \"V\", \"\\n\", \"\\\\newline\", \"abstract\", \":\", \" '\", \"We\", \" give\", \" a\", \" detailed\", \" analysis\", \" of\", \" the\", \" proportion\", \" of\", \" elements\", \" in\", \" the\", \" symmetric\", \" group\", \" on\", \" $\", \"n\", \"$\", \" points\", \" whose\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Are\", \" reflections\", \" in\", \" higher\", \" dimensions\", \" commutative\", \"?\", \"\\\\newline\", \"\\\\newline\", \"If\", \" $\", \"~\", \"r\", \"_\", \"1\", \",\", \" r\", \"_\", \"2\", \",\\\\\", \"cdots\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"The\", \" homotopy\", \" category\", \" of\", \" the\", \" category\", \" of\", \" enriched\", \" categories\", \"\\\\newline\", \"\\\\newline\", \"We\", \" know\", \" that\", \" if\", \" $\\\\\", \"mathcal\", \" C\", \"$\", \" is\", \" a\", \"\\n\", \":\", \"\\\\newline\", \"\\\\newline\", \"Joint\", \" Prob\", \"ability\", \" distribution\", \" for\", \" $\", \"Z\", \"=\", \"X\", \"/(\", \"X\", \"+\", \"Y\", \")$\", \"\\\\newline\", \"\\\\newline\", \"Suppose\", \" X\", \" and\", \" Y\", \" are\", \"\\n\"], \"activations\": [[[0.0]], [[8.413940668106079e-05]], [[0.0]], [[0.0]], [[0.0]], [[-0.0004296302795410156]], [[-6.258487701416016e-06]], [[-0.0063323974609375]], [[-0.004072666168212891]], [[0.21341872215270996]], [[-0.08541703224182129]], [[-0.03140735626220703]], [[0.20544815063476562]], [[-0.03438615798950195]], [[0.17410266399383545]], [[-0.07385563850402832]], [[0.001826956868171692]], [[0.014180243015289307]], [[-0.06542086601257324]], [[-0.0032775402069091797]], [[0.0179293155670166]], [[0.006275072693824768]], [[-0.30614471435546875]], [[0.1279001235961914]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.000888824462890625]], [[0.0]], [[-0.018754005432128906]], [[0.049019813537597656]], [[0.035775184631347656]], [[0.009325861930847168]], [[0.0013153553009033203]], [[-0.19434905052185059]], [[0.0029698461294174194]], [[8.532404899597168e-05]], [[-0.0017566680908203125]], [[0.0036640167236328125]], [[-0.001988649368286133]], [[-5.365908145904541e-05]], [[0.0020885467529296875]], [[0.005120515823364258]], [[0.017289161682128906]], [[0.002480149269104004]], [[-0.008712828159332275]], [[-0.054395198822021484]], [[0.0]], [[0.0]], [[5.8434903621673584e-05]], [[0.0]], [[0.0]], [[-0.0010021328926086426]], [[0.00010609626770019531]], [[0.00043582916259765625]], [[0.0]], [[0.0]], [[-8.302927017211914e-05]], [[0.005847454071044922]], [[-0.1853628158569336]], [[-0.0059757232666015625]], [[0.049323320388793945]], [[0.02330470085144043]], [[0.005264401435852051]], [[-0.014465808868408203]], [[0.0169793963432312]], [[0.009708881378173828]], [[0.00012060999870300293]], [[0.2366563081741333]], [[0.003349006175994873]], [[0.0008609965443611145]], [[-0.000399857759475708]], [[0.0]], [[0.0]], [[2.7395784854888916e-05]], [[0.0]], [[0.0]], [[0.12924671173095703]], [[0.031455039978027344]], [[0.03277730941772461]], [[0.043250322341918945]], [[-0.02118206024169922]], [[-0.018981456756591797]], [[0.03944063186645508]], [[-0.03410148620605469]], [[0.008112132549285889]], [[-0.04071706533432007]], [[0.02236078679561615]], [[-0.00607261061668396]], [[2.6106834411621094e-05]], [[0.021264314651489258]], [[-0.17870712280273438]], [[0.04271388053894043]], [[-0.04121971130371094]], [[0.010518550872802734]], [[-0.02054452896118164]], [[-0.010262727737426758]], [[0.0]], [[0.0]], [[3.983825445175171e-05]], [[0.0]], [[0.0]], [[-0.00020694732666015625]], [[0.0]], [[0.00016683340072631836]], [[-0.0001010894775390625]], [[0.017358779907226562]], [[0.01616668701171875]], [[-0.02554154396057129]], [[0.0010139942169189453]], [[-0.0008854866027832031]], [[-0.00098419189453125]], [[-0.00010275095701217651]], [[-0.0011790990829467773]], [[0.00029468536376953125]], [[0.0003501027822494507]], [[0.006047964096069336]], [[-0.007366299629211426]], [[0.21929049491882324]], [[-0.00678589940071106]], [[0.0003006346523761749]], [[0.00046053528785705566]], [[0.0]], [[0.0]], [[5.020946264266968e-05]], [[0.0]], [[0.0]], [[0.0004125833511352539]], [[0.0007722377777099609]], [[0.021940231323242188]], [[-0.02390444278717041]], [[0.06513071060180664]], [[0.01309061050415039]], [[-0.027792811393737793]], [[-0.008900880813598633]], [[-0.06197524070739746]], [[0.001401662826538086]], [[0.004754543304443359]], [[0.009139195084571838]], [[-0.004055440425872803]], [[0.11257314682006836]], [[-0.008993178606033325]], [[0.008704543113708496]], [[0.0020985454320907593]], [[0.010436534881591797]], [[0.0097007155418396]], [[0.38377904891967773]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.0002993345260620117]], [[0.0]], [[0.00015419721603393555]], [[0.0]], [[0.0]], [[-0.000160902738571167]], [[0.00039631128311157227]], [[-0.004370689392089844]], [[4.172325134277344e-05]], [[-0.0029091835021972656]], [[0.0003300905227661133]], [[0.00029754638671875]], [[0.0]], [[0.0]], [[0.004102230072021484]], [[0.0016796588897705078]], [[-0.22781062126159668]], [[-0.007331252098083496]], [[0.004958152770996094]], [[-0.020534992218017578]], [[0.0]], [[0.0]], [[6.338953971862793e-05]], [[0.0]], [[0.0]], [[-0.0019197463989257812]], [[-0.00019216537475585938]], [[-0.0053272247314453125]], [[0.0]], [[0.0]], [[-0.00013267993927001953]], [[0.0]], [[0.0]], [[-0.003142833709716797]], [[-0.003347158432006836]], [[0.10214042663574219]], [[-0.143035888671875]], [[0.23550200462341309]], [[0.02247452735900879]], [[0.19326543807983398]], [[-0.07631707191467285]], [[0.0012498125433921814]], [[0.0015622377395629883]], [[-0.2172698974609375]], [[-0.07319307327270508]], [[0.0]], [[0.0]], [[3.1031668186187744e-05]], [[0.0]], [[0.0]], [[-0.0008525848388671875]], [[0.0011181831359863281]], [[-6.833672523498535e-05]], [[-3.719329833984375e-05]], [[0.0]], [[-0.00013077259063720703]], [[9.822845458984375e-05]], [[0.0]], [[0.0]], [[0.0]], [[-0.0016818046569824219]], [[0.0028057098388671875]], [[0.00014907121658325195]], [[-0.004002809524536133]], [[0.001851797103881836]], [[-0.24963760375976562]], [[-0.04166221618652344]], [[-0.03735536336898804]], [[0.0015662610530853271]], [[0.0006031990051269531]], [[0.0]], [[0.0]], [[-3.1962990760803223e-06]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[-0.00336456298828125]], [[-0.00016450881958007812]], [[-0.0019142627716064453]], [[0.15689468383789062]], [[-0.13170790672302246]], [[-0.019427776336669922]], [[0.03911113739013672]], [[0.026535391807556152]], [[-0.005179882049560547]], [[0.0221329927444458]], [[0.01921159029006958]], [[-0.005520939826965332]], [[-0.0005426481366157532]], [[0.0037069320678710938]], [[0.042099952697753906]], [[0.01012277603149414]], [[0.0005690902471542358]], [[-0.003308713436126709]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc16c443d60>"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "visualize_logit_diff(full_text, best_feature)"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Ablating this feature direction appears to only affect latex-related tokens. It will trivially not affect any tokens before the first feature activation (because I subtract by direction*activation, and the activation is 0 there)."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Uniform Examples\n",
    "Maybe we’re deluding ourselves about the feature because we’re just looking at top-activating examples. If this is *truly* a monosemantic feature, then the entire activation range should have a similar meaning. Let's plot along the bins of this feature activation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_76973/336151378.py:19: UserWarning: torch.searchsorted(): input value tensor is non-contiguous, this will lower the performance due to extra data copy when converting non-contiguous tensor to contiguous, please use contiguous input value tensor if possible. This message will only appear once per program. (Triggered internally at /opt/conda/conda-bld/pytorch_1682343967769/work/aten/src/ATen/native/BucketizationUtils.h:33.)\n",
      "  bins = torch.bucketize(best_feature_activations, bin_boundaries)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-3d2a3566-4a1f\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-3d2a3566-4a1f\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Opt\", \"imal\", \"ization\", \" of\", \" sum\", \" $\", \"f\", \"(\", \"x\", \"_\", \"i\", \",\", \" x\", \"_\", \"j\", \")$\", \" for\", \" all\", \" $\", \"i\", \" <\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"The\", \" homotopy\", \" category\", \" of\", \" the\", \" category\", \" of\", \" enriched\", \" categories\", \"\\\\newline\", \"\\\\newline\", \"We\", \" know\", \" that\", \" if\", \" $\\\\\", \"mathcal\", \" C\", \"$\", \" is\", \" a\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"S\", \"quare\", \" classes\", \" of\", \" $\\\\\", \"mathbb\", \"{\", \"Q\", \"}_\", \"2\", \"^\\\\\", \"times\", \"$\", \"?\", \"\\\\newline\", \"\\\\newline\", \"Does\", \" anyone\", \" know\", \" how\", \" to\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"The\", \" set\", \" of\", \" compact\", \" open\", \" subsets\", \" of\", \" a\", \" compact\", \" set\", \" is\", \" a\", \" $\\\\\", \"sigma\", \"$-\", \"algebra\", \"?\", \"\\\\newline\", \"\\\\newline\", \"Let\", \" X\", \"\\n\", \"Abstract\", \"\\\\newline\", \"\\\\newline\", \"Absolute\", \" G\", \" values\", \" for\", \" chemical\", \" change\", \" when\", \" various\", \" aqueous\", \" solutions\", \" are\", \" irradiated\", \" with\", \" $\\\\\", \"alpha\", \"$-\", \"part\", \"icles\", \" from\", \" an\", \" external\", \" pol\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"pol\", \"yt\", \"ime\", \" transformation\", \" from\", \" a\", \" graph\", \" to\", \" a\", \" set\", \" of\", \" binary\", \" strings\", \"\\\\newline\", \"\\\\newline\", \"$\", \"d\", \"_\", \"H\", \"$\", \" denotes\", \"\\n\", \"\\\\newline\", \"\\\\newline\", \"A\", \" $\", \"277\", \" million\", \" navig\", \"ational\", \" error\", \" -\", \" uv\", \"div\", \"\\\\newline\", \"http\", \"://\", \"www\", \".\", \"n\", \"yt\", \"imes\", \".\", \"com\", \"/\", \"2013\", \"/\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"${\\\\\", \"rm\", \" Aut\", \"}(\", \"G\", \")$\", \" is\", \" cyclic\", \" $\\\\\", \"impl\", \"ies\", \" G\", \"$\", \" is\", \" abelian\", \"\\\\newline\", \"\\\\newline\", \"I\", \" would\", \" appreciate\", \" if\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"Is\", \" there\", \" a\", \" difference\", \" between\", \" the\", \" `\", \"if\", \" else\", \"`\", \" and\", \" the\", \" `\", \"if\", \"-\", \"else\", \" if\", \"-\", \"else\", \"`\", \"?\", \"\\n\", \"Q\", \":\", \"\\\\newline\", \"\\\\newline\", \"\\\\\", \"ll\", \"ap\", \" (\", \"or\", \" \\\\\", \"rl\", \"ap\", \")\", \" at\", \" the\", \" beginning\", \" of\", \" an\", \" ind\", \"ented\", \" paragraph\", \"\\\\newline\", \"\\\\newline\", \"If\", \" I\", \"\\n\", \"Where\", \" would\", \" we\", \" be\", \" these\", \" days\", \" without\", \" the\", \" World\", \" Wide\", \" Web\", \"?\", \" And\", \" where\", \" would\", \" we\", \" be\", \" without\", \" the\", \" most\", \" popular\", \" way\", \" to\", \" search\", \" for\", \"\\n\"], \"activations\": [[[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.5170822143554688]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[5.275140285491943]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.490781784057617]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.719161033630371]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.383329391479492]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.082087993621826]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[2.129323959350586]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[2.027935028076172]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[1.4374144077301025]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.4278268814086914]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.7230594158172607]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.5881088972091675]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.03630781173706055]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc16c699900>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Instead of top-k examples, just random samples from non-zero values\n",
    "text_list, full_text, _, _ = get_feature_datapoints(best_feature, dictionary_activations, dataset, setting=\"uniform\", k=10)\n",
    "visualize_text(full_text, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It does seem to be mainly latex. See the second to last line which barely activates (.14), and is a dollar sign? Maybe the model is detecting both math words & typically money words. Let's check w/..."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Created Examples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-2c4291ad-478f\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TextNeuronActivations } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-2c4291ad-478f\",\n",
       "      TextNeuronActivations,\n",
       "      {\"tokens\": [\" $\", \"\\n\", \" for\", \" $\", \"\\n\", \" integral\", \" $\", \"\\n\", \" hey\", \" $\", \"\\n\", \" integral\", \" for\", \" $\", \"\\n\", \" sold\", \" for\", \" $\", \"\\n\", \" for\", \" all\", \" $\", \"\\n\", \" sold\", \" for\", \" all\", \" $\", \"\\n\", \" profit\", \" for\", \" all\", \" $\", \"\\n\", \" \\\\newline\", \" for\", \" all\", \" $\", \"\\n\", \" {\", \"]\", \" for\", \" all\", \" $\", \"\\n\"], \"activations\": [[[1.8955477476119995]], [[0.0]], [[0.0]], [[3.8848352432250977]], [[0.0]], [[0.0]], [[2.540709972381592]], [[0.0]], [[0.0]], [[0.7566591501235962]], [[0.0]], [[0.0]], [[0.0]], [[4.607762813568115]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[4.123456001281738]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[1.1540337800979614]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[3.7463297843933105]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[0.0]], [[2.9182987213134766]], [[0.0]]], \"firstDimensionName\": \"Layer\", \"secondDimensionName\": \"Neuron\"}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc16c401cf0>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "text_list = [\n",
    "    \" $\",\n",
    "    \" for $\",\n",
    "    \" integral $\",\n",
    "    \" hey $\",\n",
    "    \" integral for $\",\n",
    "    \" sold for $\",\n",
    "    \" for all $\",\n",
    "    \" sold for all $\",\n",
    "    \" profit for all $\",\n",
    "    \" \\n for all $\",\n",
    "    \" {] for all $\",\n",
    "]\n",
    "\n",
    "visualize_text(text_list, best_feature, model, setting=\"plot\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notably, including the word “sold” immediately shoots down the activation! Also, it seems that combining math words increases it. \n",
    "\n",
    "To verify this, I’ll run the sentence “ for all $”, but prepend it w/ a token & see the effect on the feature activation. Instead of choosing a specific token, I can run all of them and print the top-increasing & top-decreasing tokens. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[token] for all $\n",
      "Top-20 increasing: ['}},$$', '))$.', '},$$', '}$$', '\\\\].', '}.$$', '}).$$', ',$$', ']}$', '}$,', '}})$,', ']$,', '})$', '.$$', '}})$.', '}}})$', ')}$', '}}$$', '}$.', '))$']\n",
      "Top-20 increasing: ['6.28', '6.27', '6.27', '6.23', '6.16', '6.15', '6.13', '6.13', '6.12', '6.12', '6.12', '6.12', '6.11', '6.11', '6.09', '6.09', '6.09', '6.05', '6.03', '6.02']\n",
      "Top-20 decreasing: [' sold', ' paid', 'Sign', ' credit', ' android', 'private', ' rent', ' shipping', 'pay', 'scribe', ' buy', ' sale', ' www', ' Give', ' Republicans', ' Democrats', ' Click', 'owned', ' monthly', ' sell']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n",
      "Number of 0 activations: 97\n",
      "[token] tree\n",
      "Top-20 increasing: ['}}{\\\\', '}})\\\\', '1', '#', ')', '/', \"'\", '2', '<|padding|>', '*', '$', '+', '.', '&', '0', '\"', '(', ',', '<|endoftext|>', '!']\n",
      "Top-20 increasing: ['0.15', '0.04', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n",
      "Top-20 decreasing: ['1', ')', '#', '/', '+', \"'\", '2', '<|padding|>', '*', '$', '.', ',', '&', '0', '\"', '(', '<|endoftext|>', '!', '%', '-']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n",
      "Number of 0 activations: 50302\n",
      " tree[token]\n",
      "Top-20 increasing: [' $|\\\\', ' $', ' $\\\\', ' $\\\\{\\\\', ' ${\\\\', ' ($\\\\', ' $-', ' $\\\\|', '}$\\\\', ' $${\\\\', ' $|', '}}\\\\,', ' ${', '}}}{\\\\', ' \\\\(', ' ${{\\\\', '}}}_{\\\\', ' $-\\\\', ' ${{{\\\\', ')}/\\\\']\n",
      "Top-20 increasing: ['2.88', '2.79', '2.75', '2.47', '2.30', '2.12', '1.93', '1.79', '1.78', '1.78', '1.76', '1.59', '1.53', '1.46', '1.43', '1.41', '1.40', '1.39', '1.39', '1.38']\n",
      "Top-20 decreasing: ['1', ')', '#', '/', '+', \"'\", '2', '<|padding|>', '*', '!', '.', ',', '&', '0', '\"', '(', '3', '<|endoftext|>', '%', '-']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n",
      "Number of 0 activations: 50083\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "' tree $|\\\\'"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def prepend_all_tokens_and_get_feature_activation(model, minimal_activating_example, feature, setting=\"prepend\"):\n",
    "    tokens = model.to_tokens(minimal_activating_example, prepend_bos=False)\n",
    "\n",
    "    # Run through every number up to vocab size\n",
    "    vocab_size = model.cfg.d_vocab\n",
    "    batch_size = 256*4  # Define your desired batch size\n",
    "\n",
    "    dollar_feature_activations = torch.zeros(vocab_size)\n",
    "    for start in range(0, vocab_size, batch_size):\n",
    "        end = min(start + batch_size, vocab_size)\n",
    "\n",
    "        token_prep = torch.arange(start, end).to(device)\n",
    "        token_prep = token_prep.unsqueeze(1)  # Add a dimension for concatenation\n",
    "\n",
    "        # 1. Prepend to the tokens\n",
    "        if setting == \"prepend\":\n",
    "            tokens_catted = torch.cat((token_prep, tokens.repeat(end - start, 1)), dim=1).long()\n",
    "        elif setting == \"append\":\n",
    "            tokens_catted = torch.cat((tokens.repeat(end - start, 1), token_prep), dim=1).long()\n",
    "        else:\n",
    "            raise ValueError(f\"Unknown setting: {setting}\")\n",
    "\n",
    "        # 2. Run through the model\n",
    "        with torch.no_grad():\n",
    "            _, cache = model.run_with_cache(tokens_catted.to(device))\n",
    "            neuron_act_batch = cache[f\"blocks.{layer}.mlp.hook_post\"]\n",
    "            _, act = smaller_auto_encoder(neuron_act_batch)\n",
    "\n",
    "        # 3. Get the feature\n",
    "        dollar_feature_activations[start:end] = act[:, -1, feature].cpu().squeeze()\n",
    "\n",
    "    k = 20\n",
    "    k_increasing_val, k_increasing_ind = dollar_feature_activations.topk(k)\n",
    "    k_decreasing_val, k_decreasing_ind = dollar_feature_activations.topk(k, largest=False)\n",
    "    if(setting == \"prepend\"):\n",
    "        print(f\"[token]{minimal_activating_example}\")\n",
    "    elif(setting == \"append\"):\n",
    "        print(f\"{minimal_activating_example}[token]\")\n",
    "    else:\n",
    "        raise ValueError(f\"Unknown setting: {setting}\")\n",
    "    # Print indices converted to tokens\n",
    "    print(f\"Top-{k} increasing: {model.to_str_tokens(k_increasing_ind)}\")\n",
    "    # Print values\n",
    "    print(f\"Top-{k} increasing: {[f'{val:.2f}' for val in k_increasing_val]}\")\n",
    "    print(f\"Top-{k} decreasing: {model.to_str_tokens(k_decreasing_ind)}\")\n",
    "    print(f\"Top-{k} decreasing: {[f'{val:.2f}' for val in k_decreasing_val]}\")\n",
    "    print(f\"Number of 0 activations: {torch.sum(dollar_feature_activations == 0)}\")\n",
    "    if(setting == \"prepend\"):\n",
    "        best_text = \"\".join(model.to_str_tokens(dollar_feature_activations.argmax()) + [minimal_activating_example])\n",
    "    else:\n",
    "        best_text = \"\".join([minimal_activating_example] + model.to_str_tokens(dollar_feature_activations.argmax()))\n",
    "    return best_text\n",
    "\n",
    "#f52\n",
    "prepend_all_tokens_and_get_feature_activation(model, \" for all $\", best_feature, setting=\"prepend\")\n",
    "prepend_all_tokens_and_get_feature_activation(model, \" tree\", best_feature, setting=\"prepend\")\n",
    "prepend_all_tokens_and_get_feature_activation(model, \" tree\", best_feature, setting=\"append\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The most-increasing are definitely partial ending \\$ latex, but I’m not quite sure what all of them are. Like detecting an ending \\$ is most indicative?\n",
    "The most-decreasing are indeed more related to the money-version of \\$.\n",
    "\n",
    "Additionally, you can't just append or prepend any token to a random token (eg \" tree\") & achieve such a high activation.\n",
    "\n",
    "What if we just start from the empty string and iteratively find the best token?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[token]\n",
      "Top-20 increasing: [' $\\\\', ' $|', ' $|\\\\', ' $\\\\{\\\\', ' $\\\\|', ' $', ' $\\\\|\\\\', ' $$\\\\', '$\\\\', ' $-\\\\', ' ${\\\\', ' ¿', ' [$\\\\', ' $%', ' ф', ' $-', ' $$', ' $$|', ' Mathemat', ' &$']\n",
      "Top-20 increasing: ['3.45', '2.42', '2.34', '1.93', '1.93', '1.90', '1.74', '1.67', '1.61', '1.59', '1.48', '1.39', '1.34', '1.23', '1.19', '1.18', '1.17', '1.16', '1.09', '1.05']\n",
      "Top-20 decreasing: ['1', ')', '#', '/', '+', \"'\", '2', '<|padding|>', '*', '$', '.', ',', '&', '0', '\"', '(', '<|endoftext|>', '!', '%', '-']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.00']\n",
      "Number of 0 activations: 50134\n",
      "[token] $\\\n",
      "Top-20 increasing: [' pode', ' gegen', ' dass', '======', ' wordt', ' été', ' zich', ' wenn', ' pued', ' și', 'には', ' auf', '}},$$', ' eine', ' deve', ' în', ' oder', ' că', '被', '------']\n",
      "Top-20 increasing: ['6.05', '5.78', '5.71', '5.69', '5.65', '5.63', '5.63', '5.60', '5.48', '5.43', '5.43', '5.42', '5.41', '5.38', '5.38', '5.35', '5.34', '5.32', '5.31', '5.31']\n",
      "Top-20 decreasing: ['configure', ' Apache', 'ymoon', ' fined', 'bm', 'ROOT', 'usterity', ' pH', 'wasysym', 'animation', 'Microsoft', ' Battle', 'bf', ' Bluetooth', ' alarm', 'RUN', 'CXX', 'Rewrite', '(\"<', 'million']\n",
      "Top-20 decreasing: ['0.00', '0.00', '0.00', '0.00', '0.00', '0.00', '0.01', '0.02', '0.02', '0.06', '0.11', '0.16', '0.18', '0.19', '0.21', '0.22', '0.23', '0.23', '0.23', '0.23']\n",
      "Number of 0 activations: 6\n",
      "[token] pode $\\\n",
      "Top-20 increasing: [' nog', ' ger', '},{\\\\', ' coworkers', ' gegen', ' sanit', ';\\\\;', '|<', '$–', ' diffé', 'Values', ' géné', 'Pref', ' daß', ' evalu', '-€', ' screened', ' dass', ' últ', ' NUM']\n",
      "Top-20 increasing: ['6.56', '6.42', '6.37', '6.34', '6.33', '6.32', '6.32', '6.31', '6.30', '6.29', '6.29', '6.29', '6.28', '6.28', '6.28', '6.27', '6.26', '6.26', '6.25', '6.25']\n",
      "Top-20 decreasing: [' fined', 'configure', 'concurrent', 'animation', 'ItemGroup', 'Microsoft', 'amssymb', 'springframework', 'opacity', 'Rewrite', ' pH', 'param', 'Redirect', 'ROOT', 'Films', 'ivariable', 'webkit', 'LICENSE', 'mathchoice', 'footer']\n",
      "Top-20 decreasing: ['0.26', '0.87', '1.26', '1.29', '1.31', '1.36', '1.42', '1.48', '1.51', '1.55', '1.55', '1.56', '1.57', '1.57', '1.63', '1.66', '1.68', '1.74', '1.75', '1.75']\n",
      "Number of 0 activations: 0\n"
     ]
    }
   ],
   "source": [
    "best_text = \"\"\n",
    "for x in range(3):\n",
    "    best_text = prepend_all_tokens_and_get_feature_activation(model, best_text, best_feature, setting=\"prepend\")"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Beyond the first token, this doesn't fit within the hypothesis, though may be OOD. A check (for the future) would be to constrain by the model's next word prediction (and maybe do direct soft prompts)."
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Comparing to the Neuron Basis\n",
    "Does this feature net us anything over using the normal neuron basis? If this is only learning a monosemantic feature, then that's pretty lame! \n",
    "\n",
    "We can first check how many neurons activate above a threshold for the top-10 feature activating examples (ie a neuron must activate above threshold for all 10 examples)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Threshold: 0.0, Neurons activated: 94\n",
      "Threshold: 0.1, Neurons activated: 39\n",
      "Threshold: 0.2, Neurons activated: 22\n",
      "Threshold: 0.3, Neurons activated: 10\n",
      "Threshold: 0.4, Neurons activated: 6\n",
      "Threshold: 0.5, Neurons activated: 3\n",
      "Threshold: 0.6, Neurons activated: 0\n",
      "Threshold: 0.7, Neurons activated: 0\n",
      "Threshold: 0.8, Neurons activated: 0\n",
      "Threshold: 0.9, Neurons activated: 0\n",
      "Threshold: 1.0, Neurons activated: 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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JcPX3PwXdWq9FotFP/zwg7y9vdOsf/O4ivHjx6tjx4767rvvtHLlSnXv3l2jRo3Sxo0bVbhwYUk3xsc0btz4tkcGUo/KDBkyJN2/4l3pQ4vFYh/rc7OM+uDW958Z6fWTJHsdAQEBWrdundauXaulS5dq+fLlWrBggerVq6eVK1dm+PpDhw6pfv36Klu2rCZMmKAiRYrI19dXy5Yt08SJE10+uuOKQoUK6fHHH9fXX3+t9957Txs3btTRo0ft436kG3361FNP6ezZs3r33XdVtmxZBQYG6vjx4+rYsaNT9dlsNoWGhuqLL75Id/nNR8uArESQATJQsmRJSVJoaKj9KE16zp07p5iYGEVHR2vQoEH29tSjETfLKBSk/mV660R56V19crt6DcNQZGSkypQpc8f1K1asqIoVK+o///mPNmzYoFq1amn69OkaPny4zp8/rw0bNujNN9+843Z69uypSZMmKTo6Os3cOM72oXSjD/7666807c72QbFixSRJ+/btS7Ns7969KlCgQKYuUffy8lL9+vVVv359TZgwQSNHjtSAAQO0du3aDN/TkiVLlJycrMWLFzsc9bn1VFpq/+zatUulSpXKsAZXTzM999xz6tq1q/bt26cFCxYod+7catGihX35zp07tX//fs2dO1cvv/yyvT31tKoz+y5ZsqRWr16tWrVq3TZUpv5cDhw4oBIlStjbT58+nebqJiAzOLUEZKBRo0YKCQnRyJEjde3atTTLU680Sv2r/NajCenNxJr6RXprYAkJCVGBAgW0bt06h/aPPvrI6XpbtWolb29vRUdHp6nFMAz7peCJiYm6fv26w/KKFSvKy8tLycnJkqSVK1dKkho2bHjH/aYelfnuu++0bds2h2XO9qF044tx7969Dm3bt2936gohSYqIiFBUVJTmzp3r0L+7du3SypUr1bRpU6e2c7OzZ8+maYuKipIke1+lJ73PREJCgmbPnu2wXsOGDRUcHKxRo0YpKSnJYdnNrw0MDHTpFGXr1q3l7e2tL7/8UgsXLlTz5s0dQlx69RmGoQ8++CDNtjL6zLZt21YpKSkaNmxYmtdcv37dvn6DBg3k4+OjKVOmOOzPUzMVI+fhiAyQgZCQEE2bNk0vvfSSKleurHbt2qlgwYI6evSoli5dqlq1aunDDz9USEiInnjiCY0dO1bXrl3TAw88oJUrVyo2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6uuvv+avqrt05coVjR8/Xk2bNtXAgQPl7e0tb29v/ec//9GUKVOUnJwsX19fvmTdqHbt2ipatKjq1q2rQYMGady4cSpYsKBWrlypdu3aqWjRop4u0fSOHDmixx9/XJJUs2ZN+fj46MSJE5KkqVOnasOGDfLy8uKIwV04evSorl69qtdee02SZLVaFR4erl9++UV//PGHrFarPvroI46eu8GMGTNUr149exA/evSo5s+fr969eys5OVnvvvtultfATy8TgoODde3aNW3YsMHeFhQUpJYtW+q9997Tvn379PHHH3uwwpwhJSVFV69eVe3ateXr6ytvb29JUnh4uM6ePaurV696uMKcJzg4WIsXL1a1atXUt29fBQYGqnnz5urXr5/9pnCMmbk7169f17Zt2zR9+nSFhITo22+/1W+//aYvvvhCiYmJeuaZZyRxFOxuBAYG6vLly/r88891/fp1DRs2TJ999plKly6t0NBQrVmzxh4mCTGZZxiGDh8+LF9fX3tb0aJF9dZbb2n8+PEaOHCgZs+eneV18BPMhNy5c+uJJ57Q6tWrtXPnTnu7n5+f/vWvf6l48eL68ccfPVdgDhEUFKQRI0aoY8eOkv5vMFl4eLjy58+voKAg+y/7vXv3eqrMHKVMmTL2fq5fv74uXLigc+fOqXr16jpw4IAkvmAzK/U0xrPPPqtjx45p0aJFeuyxx5Q/f37lz59f1atX1+DBg3Xo0CHFxsZ6uFpzi4iIULt27fTJJ5+oadOmGjp0qBYsWKDRo0dr4sSJmjZtmg4ePKiffvrJ06WamsVi0RNPPKHt27drz5499vbAwEB17NhR3bp10yeffGI/4phVCDKZ4Ofnpz59+mjr1q0aPny4wyWUuXPnVp06dbR//36urnGDiIgISTe+BFKPyNhsNiUmJtr7d8CAAerRo4cSEhI8VmdOUapUKfn5+enYsWN6+eWXtXv3bo0bN07h4eHq3bu31q1b5+kSTSv1L/8nn3xS165d0+rVq9MEloiICKWkpHCU4C6FhIToP//5j37++Wf95z//UdmyZfXEE084LA8KClJwcLAHq8wZqlatquDgYM2ZM0d///23vT1v3rxq1qyZdu3apZMnT2ZpDYyRyQSbzaYKFSrou+++U/369WWz2dS1a1fVrVtX0o2jA4ULF1auXHSvu9z8i/3q1au6cOGCcuXK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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Neurons that fire for this feature\n",
    "# Find corresponding neurons activations between pythia & autoencoder\n",
    "# Get the activations for the best dict features\n",
    "len_threshold = 11\n",
    "thresholds = [round(0.1*x,1) for x in range(len_threshold)]\n",
    "current_activated_neurons = np.zeros(len_threshold)\n",
    "for idx, threshold in enumerate(thresholds):\n",
    "    best_feature_activations = dictionary_activations[:, best_feature]\n",
    "    # Sort the features by activation, get the indices\n",
    "    nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "    sorted_indices = nonzero_indices[:10]\n",
    "    t = (neuron_activations[sorted_indices, :] > threshold)\n",
    "    # And across the first dim)\n",
    "    t = t.all(dim=0)\n",
    "    neurons_activated = t.sum()\n",
    "    current_activated_neurons[idx] = neurons_activated\n",
    "    print(f\"Threshold: {threshold}, Neurons activated: {neurons_activated}\")\n",
    "# Plot boxplot w/ plotly\n",
    "plt.scatter(thresholds, current_activated_neurons)\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel(\"Threshold\")\n",
    "plt.ylabel(\"Number of neurons activated\")\n",
    "plt.title(\"Features/Neurons activated\")\n",
    "# plt.ylim(0, 10)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notably it's a lot of neurons for above 0, but then goes to 3 for 0.5. However, we don't really know the statistics of neuron activations. Maybe some neuron's entire range is very tiny? So, we can see how many neurons are above a threshold determined by that neuron's quantiles."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Quantile: 0.0, Neurons activated: 2046\n",
      "Quantile: 0.1, Neurons activated: 1156\n",
      "Quantile: 0.2, Neurons activated: 877\n",
      "Quantile: 0.3, Neurons activated: 689\n",
      "Quantile: 0.4, Neurons activated: 532\n",
      "Quantile: 0.5, Neurons activated: 373\n",
      "Quantile: 0.6, Neurons activated: 235\n",
      "Quantile: 0.7, Neurons activated: 140\n",
      "Quantile: 0.8, Neurons activated: 60\n",
      "Quantile: 0.9, Neurons activated: 21\n",
      "Quantile: 0.99, Neurons activated: 0\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjsAAAHSCAYAAAAKdQqMAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABKh0lEQVR4nO3dd3gUVf/+8XsT0kjZkEAKSkJoIk0EFAIo0qVaeECsFEUfRSkRCyolFCkqIEgRCxEVBR4bRWkBQaSIdCRCQCC0EDAkoYaQnd8f/LJf1gTNJrsp6/t1Xblgz8zOfnKysHfOnDljMgzDEAAAgItyK+4CAAAAnImwAwAAXBphBwAAuDTCDgAAcGmEHQAA4NIIOwAAwKURdgAAgEsj7AAAAJdG2AEAAC6NsAMALuzw4cMymUyKi4sr7lIKpHLlyurdu3dxl4FSjrAD/I24uDiZTKY8v1599VWnvOaGDRs0cuRIpaWlOeX4zjBt2jSZzWZlZWXpxx9/tPbR1q1bc+3bu3dv+fn5FUOVrm3evHmaMmVKsbz2999/r5EjRxbLawP5Uaa4CwBKg1GjRikqKsqmrU6dOk55rQ0bNig2Nla9e/dWYGCgU17D0ZYuXap27drJw8PDpn3kyJFavHhxMVX17zJv3jzt2bNHgwYNsmmPjIzUpUuXcv1sHOn777/X9OnTCTwosQg7QD506NBBjRo1Ku4yCuXChQvy9fV1+HEvXryotWvXaubMmTbt9evX15IlS7Rt2zY1aNDA4a9rr6tXr8piscjT07O4SylSJpNJ3t7exV0GUKw4jQU4wA8//KC77rpLvr6+8vf3V6dOnfTbb7/Z7LNr1y717t1bVapUkbe3t8LCwtS3b1/9+eef1n1Gjhypl156SZIUFRVlPR10+PDhv517YTKZbH6rHjlypEwmk/bu3atHHnlE5cqVU/Pmza3bP/vsMzVs2FA+Pj4KCgpSz549dfToUZtjJiYmqlu3bgoLC5O3t7duvvlm9ezZU+np6Tb7xcfHKzMzUx06dLBpf+GFF1SuXLl8/7afnz685557dM899+R6bu/evVW5cmXr45y+evvttzVlyhRVrVpVXl5e2rt3ryRp9erV1tcKDAzUfffdp4SEBJtj5vThgQMHrKNsZrNZffr00cWLF232XblypZo3b67AwED5+fnplltu0WuvvfaP3/OcOXPUqlUrhYSEyMvLS7Vq1coVGq/vnxYtWsjf318BAQG64447NG/ePGu/LF26VEeOHLG+Z3L646/vm7ffflsmk0lHjhzJ9RpDhw6Vp6enzp49K0n66aef1L17d0VERMjLy0uVKlXS4MGDdenSJZu+nz59uiTZnObNYbFYNGXKFNWuXVve3t4KDQ3VM888Y32NHIZhaMyYMbr55ptVtmxZtWzZMtfPHygoRnaAfEhPT9eZM2ds2sqXLy9J+vTTT9WrVy+1b99eEyZM0MWLFzVz5kw1b95c27dvt37orFy5Un/88Yf69OmjsLAw/fbbb5o9e7Z+++03bdq0SSaTSQ8++KD279+vL774QpMnT7a+RoUKFXT69Gm76+7evbuqV6+uN998U4ZhSJLGjh2rYcOGqUePHnrqqad0+vRpTZs2TXfffbe2b9+uwMBAXblyRe3bt1dmZqZeeOEFhYWF6fjx41qyZInS0tJkNputr/H999+rYcOGCg0NtXntgIAADR48WMOHD//H0Z389qG95syZo8uXL+vpp5+Wl5eXgoKCtGrVKnXo0EFVqlTRyJEjdenSJU2bNk3NmjXTtm3bcr1Wjx49FBUVpXHjxmnbtm368MMPFRISogkTJkiSfvvtN3Xu3Fn16tXTqFGj5OXlpQMHDujnn3/+x/pmzpyp2rVrq2vXripTpowWL16s5557ThaLRf3797fuFxcXp759+6p27doaOnSoAgMDtX37di1btkyPPPKIXn/9daWnp+vYsWOaPHmyJN1wXlSPHj308ssva8GCBdZgnWPBggVq166dypUrJ0lauHChLl68qGeffVbBwcH65ZdfNG3aNB07dkwLFy6UJD3zzDM6ceKEVq5cqU8//TTX6z3zzDOKi4tTnz59NGDAAB06dEjvvfeetm/frp9//tl6em348OEaM2aMOnbsqI4dO2rbtm1q166drly58o/9CPwjA8ANzZkzx5CU55dhGMa5c+eMwMBAo1+/fjbPS05ONsxms037xYsXcx3/iy++MCQZ69ats7a99dZbhiTj0KFDNvseOnTIkGTMmTMn13EkGSNGjLA+HjFihCHJePjhh232O3z4sOHu7m6MHTvWpn337t1GmTJlrO3bt283JBkLFy68cef8fxERETavvWbNGutz09LSjHLlyhldu3a1bu/Vq5fh6+trfWxPH7Zo0cJo0aJFrhp69eplREZGWh/n9FVAQICRkpJis2/9+vWNkJAQ488//7S27dy503BzczOeeOIJa1tOH/bt29fm+Q888IARHBxsfTx58mRDknH69Okb9NCN5fWeaN++vVGlShXr47S0NMPf399o3LixcenSJZt9LRaL9e+dOnWy6YMceb1voqOjjYYNG9rs98svvxiSjLlz5/5tfePGjTNMJpNx5MgRa1v//v2NvD5OfvrpJ0OS8fnnn9u0L1u2zKY9JSXF8PT0NDp16mTzPb322muGJKNXr165jg3Yg9NYQD5Mnz5dK1eutPmSro3WpKWl6eGHH9aZM2esX+7u7mrcuLHWrFljPYaPj4/175cvX9aZM2fUpEkTSdK2bducUvd///tfm8dff/21LBaLevToYVNvWFiYqlevbq03Z+Rm+fLluU7ZXG/Pnj1KSkpSp06d8txuNps1aNAgLVq0SNu3b89zH3v60F7dunVThQoVrI9PnjypHTt2qHfv3goKCrK216tXT23bttX333+f6xh/7cO77rpLf/75pzIyMiTJOon8u+++k8Visau+698TOaOHLVq00B9//GE9Xbhy5UqdO3dOr776aq65N9efLrLHQw89pK1bt+rgwYPWtvnz58vLy0v33XdfnvVduHBBZ86cUdOmTWUYxg1/ntdbuHChzGaz2rZta/Ozbdiwofz8/Kw/21WrVunKlSt64YUXbL6nv062BgqKsAPkw5133qk2bdrYfEnX5rVIUqtWrVShQgWbrxUrViglJcV6jNTUVA0cOFChoaHy8fFRhQoVrFd4/XUejKP89QqyxMREGYah6tWr56o3ISHBWm9UVJRiYmL04Ycfqnz58mrfvr2mT5+eq86lS5cqNDT0bydvDxw4UIGBgTecu2NPHxb2+8+Zp3LLLbfk2vfWW2/VmTNndOHCBZv2iIgIm8c5p3hy5pw89NBDatasmZ566imFhoaqZ8+eWrBgQb6Cz88//6w2bdpY5w5VqFDBOtcnp69zAokjr/7r3r273NzcNH/+fEnX5sssXLhQHTp0UEBAgHW/pKQkazD08/NThQoV1KJFC5v6/k5iYqLS09MVEhKS62d7/vx568825+dSvXp1m+dXqFDB2t9AYTBnByiEnA+0Tz/9VGFhYbm2lynzf//EevTooQ0bNuill15S/fr15efnJ4vFonvvvTdfH4w3+i0+Ozv7hs+5/jfznHpNJpN++OEHubu759r/+nke77zzjnr37q3vvvtOK1as0IABAzRu3Dht2rRJN998s6Rr83Xuvffevx1hyBndGTlyZJ6jAfb0oclkss49ut6N+uCv339B5NVPkqx1+Pj4aN26dVqzZo2WLl2qZcuWaf78+WrVqpVWrFhxw+cfPHhQrVu3Vs2aNTVp0iRVqlRJnp6e+v777zV58mS7R4nsUbFiRd11111asGCBXnvtNW3atElJSUnWeUjStT5t27atUlNT9corr6hmzZry9fXV8ePH1bt373zVZ7FYFBISos8//zzP7dePugHORNgBCqFq1aqSpJCQEOtoT17Onj2r+Ph4xcbGavjw4db2nFGN690oOOT8hvvXxQbzuqrm7+o1DENRUVGqUaPGP+5ft25d1a1bV2+88YY2bNigZs2aadasWRozZozS0tK0YcMGPf/88/94nEGDBmnKlCmKjY3NtXZQfvtQutYHf/zxR672/PZBZGSkJGnfvn25tv3+++8qX758gS7Pd3NzU+vWrdW6dWtNmjRJb775pl5//XWtWbPmht/T4sWLlZmZqUWLFtmMHv31tF1O/+zZs0fVqlW7YQ32ntJ66KGH9Nxzz2nfvn2aP3++ypYtqy5duli37969W/v379cnn3yiJ554wtqecwo3P69dtWpVrVq1Ss2aNfvb4Jnzc0lMTFSVKlWs7adPn8511RZQEJzGAgqhffv2CggI0JtvvqmsrKxc23OuoMr57f6voxJ5rXib82H711ATEBCg8uXLa926dTbtM2bMyHe9Dz74oNzd3RUbG5urFsMwrJfBZ2Rk6OrVqzbb69atKzc3N2VmZkqSVqxYIUlq167dP75uzujOd999px07dthsy28fStc+PH///Xebtp07d+bryidJCg8PV/369fXJJ5/Y9O+ePXu0YsUKdezYMV/HuV5qamqutvr160uSta/yktd7Ij09XXPmzLHZr127dvL399e4ceN0+fJlm23XP9fX19eu06HdunWTu7u7vvjiCy1cuFCdO3e2CXp51WcYht59991cx7rRe7ZHjx7Kzs7W6NGjcz3n6tWr1v3btGkjDw8PTZs2zeb1imtFaLgeRnaAQggICNDMmTP1+OOPq0GDBurZs6cqVKigpKQkLV26VM2aNdN7772ngIAA3X333Zo4caKysrJ00003acWKFTp06FCuYzZs2FCS9Prrr6tnz57y8PBQly5d5Ovrq6eeekrjx4/XU089pUaNGmndunXav39/vuutWrWqxowZo6FDh+rw4cO6//775e/vr0OHDumbb77R008/rSFDhmj16tV6/vnn1b17d9WoUUNXr17Vp59+Knd3d3Xr1k3Stfk6zZs3t7kM/e8MHDhQkydP1s6dO20+VPPbh5LUt29fTZo0Se3bt9eTTz6plJQUzZo1S7Vr17ZOGP4nb731ljp06KDo6Gg9+eST1kvPzWZzgVYAHjVqlNatW6dOnTopMjJSKSkpmjFjhm6++WabtY3+ql27dvL09FSXLl30zDPP6Pz58/rggw8UEhKikydP2vTP5MmT9dRTT+mOO+6wrpu0c+dOXbx4UZ988omka++b+fPnKyYmRnfccYf8/PxsRmr+KiQkRC1bttSkSZN07tw5PfTQQzbba9asqapVq2rIkCE6fvy4AgIC9NVXX+U50pLznh0wYIDat28vd3d39ezZUy1atNAzzzyjcePGaceOHdZVthMTE7Vw4UK9++67+s9//qMKFSpoyJAhGjdunDp37qyOHTtq+/bt+uGHH6zLLwCFUhyXgAGlRc6l51u2bPnb/dasWWO0b9/eMJvNhre3t1G1alWjd+/exq+//mrd59ixY8YDDzxgBAYGGmaz2ejevbtx4sSJXJeNG4ZhjB492rjpppsMNzc3m8vQL168aDz55JOG2Ww2/P39jR49ehgpKSk3vPT8RpdDf/XVV0bz5s0NX19fw9fX16hZs6bRv39/Y9++fYZhGMYff/xh9O3b16hatarh7e1tBAUFGS1btjRWrVplGMa1S55DQkKMiRMn5tkXusFl6zl1XX/puT19aBiG8dlnnxlVqlQxPD09jfr16xvLly+/4aXnb731Vp7f/6pVq4xmzZoZPj4+RkBAgNGlSxdj7969edb61z7MeU/k/Ezi4+ON++67z6hYsaLh6elpVKxY0Xj44YeN/fv35/na11u0aJFRr149w9vb26hcubIxYcIE4+OPP85z6YFFixYZTZs2tdZ85513Gl988YV1+/nz541HHnnECAwMNCRZ++Pvliz44IMPDEmGv79/rsvaDcMw9u7da7Rp08bw8/Mzypcvb/Tr18/YuXNnruNdvXrVeOGFF4wKFSoYJpMp12Xos2fPNho2bGj4+PgY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PDw0fvx4rVy50roNjvP++++rXbt2mjJlinx9ffXll19q2rRp+vTTTyXxf4ijnDlzRo899pj69u2rBQsW6Ouvv1ZYWJguXbpk3YcRecf5/fffFR0drXPnzik4OFjr16/XI488oilTpjjtNRnZcZL09HRdunRJPXr0kNlsltls1qBBg3TLLbdo2LBh6tGjhxYsWMBvZYV06dIlvfPOO+rYsaOGDRsmd3d3ubu764033tC0adOUmZkpT09PPoQdrHnz5oqIiFDLli01fPhwvf3226pQoYJWrFihnj17KiIiorhLdAlHjhzRXXfdJUlq2rSpPDw8dOLECUnS9OnTtWHDBrm5uTHqUEhJSUm6cuWKnn76aUmS2WxWWFiY1q9fr19//VVms1kzZsxgRN5BZs+erVatWllDe1JSkubNm6eYmBhlZmbqlVdecfhr8hNzEn9/f2VlZWnDhg3WNj8/P3Xt2lWvvfaa9u3bp/fff78YK3QN2dnZunLlipo3by5PT0+5u7tLksLCwpSamqorV64Uc4Wuyd/fX4sWLdKdd96pl156Sb6+vurcubNeffVV6439mMNTeFevXtWOHTs0a9YsBQQE6JtvvtHmzZv1+eefKyMjQ/fff78kRtQKy9fXVxcvXtRnn32mq1evavTo0fr0009VvXp1hYSEaPXq1dbQSdApHMMwdPjwYXl6elrbIiIi9MILL+idd97RsGHDNGfOHIe/Lj81JylbtqzuvvturVq1Srt377a2e3l56T//+Y8qV66sH3/8sfgKdBF+fn4aO3asevfuLen/JryFhYUpODhYfn5+1g+C33//vbjKdDk1atSw9nXr1q117tw5nT17Vo0bN1ZiYqIkPoALI+d0yQMPPKCjR4/q66+/VpMmTRQcHKzg4GA1btxYI0aM0MGDB3Xo0KFirrb0Cw8PV8+ePfXBBx+oY8eOGjVqlObPn6/x48dr8uTJmjlzpg4cOKC1a9cWd6mlnslk0t13362dO3cqISHB2u7r66vevXurf//++uCDD6wjmI5C2HESLy8vDRkyRNu3b9eYMWNsLhstW7asWrRoof3793PVkAOEh4dLuvYBkTOyY7FYlJGRYe3f119/XQMHDlR6enqx1elKqlWrJi8vLx09elRPPPGE9u7dq7ffflthYWGKiYnRunXrirvEUi1n9OCee+5RVlaWVq1alSvUhIeHKzs7m5EGBwgICNAbb7yhn376SW+88YZq1qypu+++22a7n5+f/P39i7FK19GoUSP5+/srLi5Ox44ds7aXK1dOnTp10p49e3Ty5EmHviZzdpzEYrGoTp06+u6779S6dWtZLBY999xzatmypaRroww333yzypThR+Ao1/+nf+XKFZ07d05lypTRiBEjNHHiRG3cuFFms7kYK3QNhmHo6tWrMgxD0dHRcnNz09KlS1W/fn1FRkZq7ty5qly5cnGXWeoZhqGIiAjNnj1bPXv21NKlSzVu3DgNHTpUmZmZio+PV3BwsAICAoq7VJfg7+8vf39/WSwWeXl5KSEhwXrq6rvvvpOfn59uuummYq7SNTRv3lwPP/yw3n33XXl5eal3796qUqWKJKlu3bqKiIiwWcfLEUwGJ9YLxWKxyDAM64hCTpubm5uys7Pl7u6urVu36qmnnrK2Va5cWWvWrNG6det02223FWP1pcvf9fVfbdq0SQMGDFCLFi00bdo0/fzzz2rYsGFRlluq5aevP//8c02bNk3Tp0+36dsLFy7I19e3SOstzf6ur3P+3L9/v15//XVt3rxZV69eVfXq1bVnzx7Fx8erfv36xVd8KZOf93VKSoo6deqkcuXKqVy5cvLz89M333yj1atX09cOcH1/v/nmm5o7d64aNmyo3r17q1q1apo5c6a++OILbdmyRWFhYQ57XcJOIezdu1dvvvmmkpOTVb16dXXu3FmdOnWSJGvQyfkzKSlJW7du1erVq1WpUiV17dpVNWvWLObvoPTIT19fb8OGDWrevLnKlSunlStXqkGDBsVRdqmU377OysrShQsXFBgYKIl1SAoiP32d8+Hw559/6tixY/rhhx8UERGhxo0bq2rVqsX8HZQe+enrnPdwQkKCpk6dqsOHDysyMlIDBw7UrbfeWszfQemS1//LOa4PPJ988om+/fZbLVq0SLVr11ZGRoa++eYb3X777Q6th7BTQPv27VPjxo3VoUMHVa5cWT/88IM8PDzUvHlzTZ48WdK1Uymenp58CBSSPX2d4/Dhw+rRo4fi4uJUq1at4iq91MlPX2dmZlqvuJJY2K6gCvK+RsHY09c57+dLly7Jx8dHWVlZ8vDwKObvoHTZv3+/Fi9erEceecQ6p/Kvrl69ap3GceHCBR06dEhubm4KDg5WaGio44syYDeLxWK89tpr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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import torch\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "len_threshold = 11\n",
    "thresholds = [round(0.1 * x, 1) for x in range(len_threshold)]\n",
    "thresholds[-1] = 0.99\n",
    "current_activated_neurons = np.zeros(len_threshold)\n",
    "\n",
    "# Find corresponding neurons activations between pythia & autoencoder\n",
    "best_feature_activations = dictionary_activations[:, best_feature]\n",
    "\n",
    "# Sort the features by activation and get the indices\n",
    "nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "sorted_indices = nonzero_indices[:11]\n",
    "\n",
    "neuron_test = neuron_activations[:50000, :]\n",
    "neuron_test = neuron_test.to(device)\n",
    "thresholds_t = torch.tensor(thresholds).to(device)\n",
    "neuron_activations = neuron_activations.to(device)\n",
    "# above_quantile = neuron_test[above_zero_indices].quantile(0.5, dim=0)\n",
    "\n",
    "# Calculate the quantiles for each neuron's activation range\n",
    "quantiles = torch.quantile(neuron_test, thresholds_t, dim=0)\n",
    "\n",
    "best_feature_activations = dictionary_activations[:, best_feature]\n",
    "# Sort the features by activation, get the indices\n",
    "nonzero_indices = torch.argsort(best_feature_activations, descending=True)\n",
    "sorted_indices = nonzero_indices[:10]\n",
    "for idx, threshold in enumerate(quantiles):\n",
    "    t_temp = (neuron_activations[sorted_indices, :] > threshold)\n",
    "    # And across the first dim)\n",
    "    t = t_temp.all(dim=0)\n",
    "    current_activated_neurons[idx] = t.sum()\n",
    "    print(f\"Quantile: {thresholds[idx]}, Neurons activated: {t.sum()}\")\n",
    "\n",
    "# Plot scatter plot\n",
    "plt.scatter(thresholds, current_activated_neurons)\n",
    "plt.xticks(rotation=45)\n",
    "plt.xlabel(\"Quantile\")\n",
    "plt.ylabel(\"Number of neurons activated\")\n",
    "plt.title(\"Features/Neurons activated\")\n",
    "plt.ylim(0, 100)\n",
    "plt.show()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here, 80 neurons are activating in above their top 1% of activations.\n",
    "\n",
    "Another way is to look at the decoder of the dictionary & see the weights effect on neurons since it's just a linear layer. Additionally, I'll multiply by the max-activation of that feature to show the scale of the effect on the neurons."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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rp369++v999/v5kqtYs38/baa6/p5ptvVocOHdShQwelpKR87zwHK29/376zatUqORwO3XXXXf4t0FLeztuJEyeUmZmpuLg4OZ1O9erVq1X+W/V23hYuXOh+H0hISFBWVpbOnDnTTNUGId88XSe4pKammoEDB5pdu3aZDz/80FxzzTVmwoQJFxz/ySefmLvvvtusXbvWlJaWmvz8fHPttdeacePGNWPVzW/VqlUmLCzMLF261Hz22Wdm6tSpJioqylRWVjY6/qOPPjJt2rQx8+fPN59//rmZNWuWadu2rfnkk0+aufLA8nbeJk6caBYtWmT+8Y9/mP3795vJkyebyMhIc+TIkWauPLC8nbfvlJWVmR/84Afm5ptvNnfeeWfzFGsRb+etpqbGDBkyxIwePdrs2LHDlJWVma1bt5ri4uJmrjywvJ23FStWGKfTaVasWGHKysrMBx98YOLi4kxWVlYzVx48CCjn+fzzz40ks3v3bnff3/72N+NwOMzXX399yed5++23TVhYmKmtrfVHmVYYOnSoyczMdG+fO3fOxMfHm9zc3EbH33PPPWbMmDEefUlJSebhhx/2a5228XbezldXV2fCw8PN66+/7q8SrdSUeaurqzM33nij+dOf/mQmTZrUKgOKt/P2yiuvmB49epizZ882V4lW8nbeMjMzzW233ebRl52dbW666Sa/1hnM+IjnPAUFBYqKitKQIUPcfSkpKQoJCVFhYeEln6eqqkoREREKDW0Rz2P02tmzZ1VUVKSUlBR3X0hIiFJSUlRQUNDoMQUFBR7jJWnUqFEXHB+MmjJv5zt9+rRqa2sVHR3trzKt09R5mzdvnmJiYjRlypTmKNM6TZm3tWvXKjk5WZmZmerSpYv69eun5557TufOnWuusgOuKfN24403qqioyP0x0Jdffqn3339fo0ePbpaag1FwvntehoqKCsXExHj0hYaGKjo6WhUVFZd0jm+//VbPPPOMMjIy/FGiFb799ludO3euwV/+7dKli/75z382ekxFRUWj4y91XoNBU+btfDNmzFB8fHyDsBfMmjJvO3bs0JIlS1RcXNwMFdqpKfP25ZdfavPmzUpPT9f777+v0tJSPfroo6qtrdXs2bObo+yAa8q8TZw4Ud9++62GDRsmY4zq6ur0yCOP6P/+7/+ao+Sg1GpWUGbOnCmHw3HRdqlvEBfjcrk0ZswY/fCHP9ScOXMuv3Dgf+Tl5WnVqlV699131a5du0CXY62TJ0/q/vvv12uvvaZOnToFupwWpb6+XjExMXr11Vc1ePBg3XvvvXryySe1ePHiQJdmta1bt+q5557Tyy+/rL1792r16tVav369nnnmmUCX1mK1mhWUX/3qV5o8efJFx/To0UOxsbH65ptvPPrr6up0/PhxxcbGXvT4kydPKjU1VeHh4Xr33XfVtm3byy3bWp06dVKbNm1UWVnp0V9ZWXnBeYqNjfVqfDBqyrx9Z8GCBcrLy9OmTZs0YMAAf5ZpHW/n7cCBAzp48KDGjh3r7quvr5f03xXRkpIS9ezZ079FW6Apv29xcXFq27at2rRp4+7r27evKioqdPbsWYWFhfm1Zhs0Zd6eeuop3X///XrooYckSf3791d1dbUyMjL05JNPKiSk1awH+EyrmbHOnTurT58+F21hYWFKTk7WiRMnVFRU5D528+bNqq+vV1JS0gXP73K5dPvttyssLExr164N+v+7DQsL0+DBg5Wfn+/uq6+vV35+vpKTkxs9Jjk52WO8JG3cuPGC44NRU+ZNkubPn69nnnlGGzZs8Lg/qrXwdt769OmjTz75RMXFxe52xx13aMSIESouLlZCQkJzlh8wTfl9u+mmm1RaWuoOdJL0r3/9S3Fxca0inEhNm7fTp083CCHfhTzDI++aJtB36dooNTXVDBo0yBQWFpodO3aYa6+91uNrxkeOHDG9e/c2hYWFxhhjqqqqTFJSkunfv78pLS015eXl7lZXVxeoy/C7VatWGafTaZYvX24+//xzk5GRYaKiokxFRYUxxpj777/fzJw50z3+o48+MqGhoWbBggVm//79Zvbs2a32a8bezFteXp4JCwszf/nLXzx+t06ePBmoSwgIb+ftfK31WzzeztuhQ4dMeHi4mTZtmikpKTHr1q0zMTEx5tlnnw3UJQSEt/M2e/ZsEx4ebt58803z5Zdfmr///e+mZ8+e5p577gnUJbR4BJRGHDt2zEyYMMFcddVVJiIiwjzwwAMebwZlZWVGktmyZYsxxpgtW7YYSY22srKywFxEM3nppZdM165dTVhYmBk6dKjZtWuXe9+tt95qJk2a5DH+7bffNr169TJhYWHmuuuuM+vXr2/miu3gzbx169at0d+t2bNnN3/hAebt79v/aq0BxRjv523nzp0mKSnJOJ1O06NHD/Pb3/42qP9n60K8mbfa2lozZ84c07NnT9OuXTuTkJBgHn30UfOf//yn+QsPEg5jWHsCAAB2aTX3oAAAgJaDgAIAAKxDQAEAANYhoAAAAOsQUAAAgHUIKAAAwDoEFAAAYB0CCgAAsA4BBQAAWIeAAgAArENAAQAA1iGgAAAA6/w/s1UCwCT48p8AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Check features non-zero weights in decoder\n",
    "# Plot a histogram of the weights\n",
    "max_activation = dictionary_activations[:, best_feature].max()\n",
    "weights = smaller_dict[best_feature]\n",
    "plt.hist(weights*max_activation, bins=100)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(tensor([0.9417, 0.8082, 0.7213, 0.6479, 0.5914, 0.5377, 0.5319, 0.5278, 0.5112,\n",
       "         0.5048, 0.5000, 0.4953, 0.4813, 0.4617, 0.4445, 0.4136, 0.4066, 0.4046,\n",
       "         0.3895, 0.3874]),\n",
       " tensor([-0.2124, -0.2027, -0.1851, -0.1814, -0.1799, -0.1762, -0.1761, -0.1744,\n",
       "         -0.1742, -0.1716, -0.1693, -0.1669, -0.1625, -0.1624, -0.1613, -0.1609,\n",
       "         -0.1607, -0.1607, -0.1605, -0.1600]),\n",
       " tensor(82))"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(weights*max_activation).topk(20).values, (weights*max_activation).topk(20, largest=False).values, (weights*max_activation > 0.2).sum()"
   ]
  },
  {
   "attachments": {},
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "So a few datapoints to indicate somewhere between 3 & 80 neurons, maybe several hundred depending on how you interpret it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Feature 52: ['�', '�', '��', '�', '�', '�', '�', '��', '�', '�']\n"
     ]
    }
   ],
   "source": [
    "# Logit lens\n",
    "# Multiply feature direction by W_out[layer]\n",
    "# Then by W_U\n",
    "for n in range(52, 53):\n",
    "    best_feature = max_indices[n]\n",
    "    with torch.no_grad():\n",
    "        feature_direction = smaller_dict[best_feature].to(device)\n",
    "        residual_direction = torch.matmul(feature_direction, model.W_out[layer]) # Add bias\n",
    "        # residual_direction = model.ln_final(residual_direction)\n",
    "        logits = torch.matmul(residual_direction, model.W_U).cpu()\n",
    "    topk_values, topk_indices = torch.topk(logits, 10)\n",
    "    top_text = model.to_str_tokens(topk_indices)\n",
    "    print(f\"Feature {n}: {top_text}\")\n",
    "# print(topk_values)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "torch.Size([25, 50304]) torch.Size([25])\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div id=\"circuits-vis-54bd5185-cb13\" style=\"margin: 15px 0;\"/>\n",
       "    <script crossorigin type=\"module\">\n",
       "    import { render, TokenLogProbs } from \"https://unpkg.com/circuitsvis@1.40.0/dist/cdn/esm.js\";\n",
       "    render(\n",
       "      \"circuits-vis-54bd5185-cb13\",\n",
       "      TokenLogProbs,\n",
       "      {\"prompt\": [\"Q\", \":\", \"\\n\", \"\\n\", \"Opt\", \"imal\", \"ization\", \" of\", \" sum\", \" $\", \"f\", \"(\", \"x\", \"_\", \"i\", \",\", \" x\", \"_\", \"j\", \")$\", \" for\", \" all\", \" $\", \"i\", \" <\"], \"topKLogProbs\": [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0235595703125, 0.020867347717285156, 0.0201416015625, 0.020084381103515625, 0.0198211669921875, 0.018798828125, 0.018793106079101562, 0.018674850463867188, 0.018636703491210938, 0.018564224243164062], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.02685546875, 0.023321151733398438, 0.02216815948486328, 0.0220947265625, 0.0220947265625, 0.02187061309814453, 0.020751953125, 0.020734786987304688, 0.02070140838623047, 0.020633697509765625], [0.029052734375, 0.025796890258789062, 0.0250244140625, 0.024565696716308594, 0.02421092987060547, 0.0230712890625, 0.022939682006835938, 0.022830963134765625, 0.02278614044189453, 0.0225830078125], [0.030298233032226562, 0.029876708984375, 0.029550552368164062, 0.02895069122314453, 0.02689361572265625, 0.026739120483398438, 0.0264892578125, 0.025646209716796875, 0.025595664978027344, 0.025313377380371094], [0.0389404296875, 0.0325927734375, 0.0322265625, 0.0311279296875, 0.030338287353515625, 0.030029296875, 0.0299072265625, 0.0296630859375, 0.02941417694091797, 0.029296875], [1.8409423828125, 1.7416210174560547, 1.7156982421875, 1.7144775390625, 1.693115234375, 1.632211685180664, 1.6103515625, 1.586669921875, 1.55615234375, 1.5317401885986328], [0.7083873748779297, 0.6767578125, 0.6716251373291016, 0.6569538116455078, 0.6371402740478516, 0.6314926147460938, 0.6135215759277344, 0.6050987243652344, 0.5822658538818359, 0.5716266632080078], [0.4404296875, 0.3604736328125, 0.33544921875, 0.3311767578125, 0.30615234375, 0.30322265625, 0.2996826171875, 0.298828125, 0.2503662109375, 0.2449951171875], [0.46669864654541016, 0.41055870056152344, 0.3762550354003906, 0.3631610870361328, 0.34847164154052734, 0.34462547302246094, 0.32357215881347656, 0.32198143005371094, 0.31895923614501953, 0.31554412841796875], [0.2111797332763672, 0.1852588653564453, 0.1829833984375, 0.178741455078125, 0.17704391479492188, 0.1753997802734375, 0.17350196838378906, 0.16923904418945312, 0.16153907775878906, 0.15930747985839844], [0.5052490234375, 0.490234375, 0.3778076171875, 0.3548851013183594, 0.3317384719848633, 0.32653045654296875, 0.3184623718261719, 0.2986946105957031, 0.2936363220214844, 0.29345703125], [0.24341964721679688, 0.23499584197998047, 0.21632003784179688, 0.21609783172607422, 0.20868778228759766, 0.19429874420166016, 0.19086551666259766, 0.19025039672851562, 0.18310546875, 0.17172718048095703], [0.5843505859375, 0.48572731018066406, 0.48131370544433594, 0.453125, 0.4487457275390625, 0.4449462890625, 0.441162109375, 0.421142578125, 0.41910743713378906, 0.4120330810546875], [0.274627685546875, 0.27451515197753906, 0.2667198181152344, 0.249176025390625, 0.2325267791748047, 0.22358322143554688, 0.21935272216796875, 0.2186756134033203, 0.2180461883544922, 0.215423583984375], [0.4599266052246094, 0.4533557891845703, 0.3998546600341797, 0.39819908142089844, 0.3880615234375, 0.3650388717651367, 0.36130523681640625, 0.3600120544433594, 0.35473060607910156, 0.3536872863769531], [0.04955768585205078, 0.0457763671875, 0.044338226318359375, 0.04265022277832031, 0.04248046875, 0.042034149169921875, 0.041904449462890625, 0.04169273376464844, 0.04104804992675781, 0.04076385498046875], [0.2626209259033203, 0.2590484619140625, 0.24467849731445312, 0.23686790466308594, 0.2328624725341797, 0.22881126403808594, 0.2276744842529297, 0.22762680053710938, 0.2274341583251953, 0.2249279022216797], [0.45878028869628906, 0.40478515625, 0.3924102783203125, 0.39191436767578125, 0.3903675079345703, 0.3853168487548828, 0.3782024383544922, 0.3751564025878906, 0.3745861053466797, 0.374053955078125], [1.797943115234375, 1.3722972869873047, 1.37188720703125, 1.3609428405761719, 1.305140495300293, 1.3050041198730469, 1.284433364868164, 1.283742904663086, 1.2586116790771484, 1.2558174133300781], [0.9027137756347656, 0.8610191345214844, 0.8286857604980469, 0.7957210540771484, 0.7936172485351562, 0.7932395935058594, 0.7898330688476562, 0.7533206939697266, 0.7398929595947266, 0.7393989562988281]], \"topKTokens\": [[\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"\\ufffd\", \"oct\", \"\\ufffd\", \" Bow\", \" Hex\", \"\\ufffd\", \" Rainbow\", \" MUS\", \"Bow\", \"quare\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"'\", \"(\", \"#\", \"&\", \"$\", \"\\\"\", \"<|padding|>\", \"<|endoftext|>\", \"!\", \"%\"], [\"\\ufffd\", \"oct\", \" Bow\", \"\\ufffd\", \"\\ufffd\", \" Hex\", \"\\ufffd\", \" Rainbow\", \"Bow\", \" MUS\"], [\"\\ufffd\", \"oct\", \"\\ufffd\", \" Bow\", \" Hex\", \"\\ufffd\", \" Rainbow\", \"Bow\", \" MUS\", \"\\ufffd\"], [\"QR\", \"idal\", \" Rainbow\", \" against\", \"quare\", \"ricting\", \"\\ufffd\", \"hift\", \" MUS\", \" SW\"], [\"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"oct\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \" Bow\", \"\\ufffd\"], [\"\\ufffd\", \".\\\"_\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"_.\\\"\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"SUM\"], [\";\\\"\", \"\\\";\", \"\\\"].\", \"\\\"];\", \"\\u201d;\", \"\\\"]\", \").\\\"\", \"].\\\"\", \"]=\", \")\\\"\"], [\"\\ufffd\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\"], [\"}$).\", \"}$;\", \"}$),\", \"\\\"];\", \"}$)\", \"\\\";\", \" miser\", \"}$.\", \"$;\", \"]>\"], [\"$;\", \"\\\\}$.\", \"}$;\", \"^;\", \"]$.\", \"$.\\\\\", \"|$.\", \"\\\\}$,\", \"\\\\}$\", \")$;\"], [\"\\ufffd\", \"\\ufffd\\ufffd\", \"\\ufffd\", \"}$;\", \"}$).\", \" counterpart\", \"\\\";\", \"';\", \" reason\", \"\\ufffd\"], [\",...\", \" :\", \" ....\", \"....\", \" i\", \"(\", \" ...\", \" ide\", \"\\ufffd\", \":(\"], [\"\\ufffd\", \"';\", \"\\\";\", \"\\ufffd\", \"\\\"];\", \"\\ufffd\", \"\\ufffd\", \"\\ufffd\", \"}$;\", \"lor\"], [\"}$.\", \"}$;\", \"}$).\", \"\\\";\", \"}$:\", \"}.$\", \"$;\", \"\\\".\\\"\", \"]$.\", \"}$\"], [\"lor\", \"\\\";\", \"';\", \"\\\"];\", \"\\ufffd\\ufffd\", \"}$).\", \"usual\", \".\\\";\", \"really\", \" counterpart\"], [\")$$\", \"\\ufffd\", \")}$$\", \")))\", \"\\ufffd\", \"\\\\)\", \">)\", \"hores\", \"javascript\", \")}{\\\\\"], [\"\\\\\\\":\", \"\\u201d,\", \"\\u201c\", \"\\\"</\", \"\\\",\", \"\\u201d;\", \"\\\":\", \"\\u201d?\", \"\\u201d:\", \"Bigl\"], [\"\\\"));\", \"\\\");\", \"\\\"))\", \"_\\\"\", \"\\\\\\\",\", \"![**\", \"*>(\", \"\\\"])\", \"\\u201f\", \"~),\"], [\"medsc\", \"orph\", \"fluor\", \"rent\", \"or\", \"rile\", \"ailand\", \"ICENSE\", \"RICT\", \"APDH\"], [\"\\\"].\", \"\\\"];\", \"\\\";\", \"\\u201d;\", \"\\\");\", \").\\\"\", \"\\\"],\", \"\\\"),\", \"].\\\"\", \";\\\"\"]], \"correctTokenRank\": [33507, 27799, 33470, 46709, 31582, 21760, 23865, 5158, 11650, 35802, 1393, 415, 31440, 643, 14998, 246, 24507, 28849, 1613, 21759, 46469, 40353, 3355, 37522], \"correctTokenLogProb\": [0.0, -8.413940668106079e-05, 0.0, 0.0, 0.0, 0.0004296302795410156, 6.258487701416016e-06, 0.0063323974609375, 0.004072666168212891, -0.21341872215270996, 0.08541703224182129, 0.03140735626220703, -0.20544815063476562, 0.03438615798950195, -0.17410266399383545, 0.07385563850402832, -0.001826956868171692, -0.014180243015289307, 0.06542086601257324, 0.0032775402069091797, -0.0179293155670166, -0.006275072693824768, 0.30614471435546875, -0.1279001235961914]}\n",
       "    )\n",
       "    </script>"
      ],
      "text/plain": [
       "<circuitsvis.utils.render.RenderedHTML at 0x7fc1a7672020>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import circuitsvis\n",
    "text = full_text\n",
    "features = best_feature\n",
    "\n",
    "if features==None:\n",
    "    features = torch.tensor([best_feature])\n",
    "if isinstance(features, int):\n",
    "    features = torch.tensor([features])\n",
    "if isinstance(features, list):\n",
    "    features = torch.tensor(features)\n",
    "if isinstance(text, str):\n",
    "    text = [text]\n",
    "text_list = []\n",
    "logit_list = []\n",
    "for t in text:\n",
    "    tokens = model.to_tokens(t, prepend_bos=False)\n",
    "    with torch.no_grad():\n",
    "        original_logits = model(tokens).log_softmax(-1).cpu()\n",
    "        ablated_logits = ablate_feature_direction(tokens, features, model, smaller_auto_encoder).log_softmax(-1).cpu()\n",
    "    # diff_logits = ablated_logits  - original_logits# ablated > original -> negative diff\n",
    "    diff_logits =   original_logits - ablated_logits# ablated > original -> negative diff\n",
    "    tokens = tokens.cpu()\n",
    "    split_text = model.to_str_tokens(t, prepend_bos=False)\n",
    "    gather_tokens = rearrange(tokens[:,1:], \"b s -> b s 1\") # TODO: verify this is correct\n",
    "    # Gather the logits for the true tokens\n",
    "    true_log_probs = rearrange(diff_logits[:, :-1].gather(-1,gather_tokens), \"b s n -> (b s n)\")\n",
    "    break\n",
    "# Add an extra dim for the batch\n",
    "diff_logits = diff_logits[0]\n",
    "tokens = tokens[0]\n",
    "print(diff_logits.shape, tokens.shape)\n",
    "# circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=original_logits, to_string=model.to_single_str_token)\n",
    "circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=diff_logits, to_string=model.to_single_str_token)\n",
    "# circuitsvis.logits.token_log_probs(token_indices=tokens, top_k=10, log_probs=ablated_logits, to_string=model.to_single_str_token)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "vscode": {
     "languageId": "shellscript"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGzCAYAAAAxPS2EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCdElEQVR4nO3df3zNdeP/8ed+2NmYbYZtlpmFYvkZNav8CJdhkSsVWpKUjxpdfiRJSaSJSirpclV0FVe4ior8GPMjNb+WRZRUJLEpbENss72+f/Td+3JsY2dtbW897rfb+8Z5vV/n9X69X+ec7bnX+8dxM8YYAQAA2Ih7RXcAAADAVQQYAABgOwQYAABgOwQYAABgOwQYAABgOwQYAABgOwQYAABgOwQYAABgOwQYAABgOwQYm6pfv77uvffeiu7GZW/69Om68sor5eHhoZYtW1Z0dyRV7GvfsWNHdezYsUK2XRIrV65Uy5Yt5e3tLTc3N2VkZFR0l5xMnDhRbm5uZdbe+vXr5ebmpvXr15dZm3ZW1uOLyo0AUwnMmzdPbm5u2r59e5HrO3bsqKZNm/7h7XzyySeaOHHiH27nr2L16tV69NFHdeONN2ru3Ll69tlnS/S8O++8U25ubho7dmypt/35559r4sSJFfILeM+ePZo4caIOHDjwp2/7jzh27JjuvPNO+fj4aNasWXrnnXdUrVq1cttewee2YPH29lZoaKhiYmL08ssv6+TJk2W2rddee03z5s0rs/bspn79+k5jff7SrVu3iu5euVmwYIFeeukll57z+eef66abblLVqlUVEhKihx9+WKdOnSqfDlY0gwo3d+5cI8ls27atyPUdOnQw11xzjVPZ2bNnTU5OjkvbiY+PN7zkJTd27Fjj7u5usrOzS/yczMxM4+3tberXr2/CwsJMfn5+qbY9ffp0I8ns37+/0LrSvPauWLx4sZFk1q1bV2hddna2S+PxZ1qxYoWRZBITE/+U7RV8bidNmmTeeecd89Zbb5lnn33WdO3a1bi5uZnw8HDz5ZdfOj0nNzfXnDlzxuVtXXPNNaZDhw6FyvPy8syZM2dMXl5eaXfDFsLDw03Lli3NO++8U2hZu3atVe+pp566rH7GxcbGmvDw8BLX37Fjh/H29jatWrUys2fPNuPHjzcOh8N069at/DpZgTwrMDvhD3A4HBXdBZedPn26XP8iLmtHjx6Vj4+PvLy8Svyc999/X3l5eXrrrbfUqVMnbdy4UR06dCjTflXka+/KWPzZjh49KkkKCAgoszZL8p7t3r272rRpYz0eN26ckpKSdMstt6hXr176+uuv5ePjI0ny9PSUp2fZ/dh1d3eXt7d3mbVX1vLz85WTk1Mmfbziiit09913l0GvLl+PP/64atSoofXr18vPz0/S77NXDzzwgFavXq2uXbtWcA/LWEUnKJRuBiY8PNwMHDjQepyTk2MmTpxoGjZsaBwOhwkMDDQ33nijWb16tTHGmIEDBxpJhZYCp06dMqNGjTJ169Y1Xl5e5qqrrjLTp08vNIPw22+/meHDh5uaNWsaX19f07NnT3Po0CEjyTz11FNWvYK/hHbv3m369+9vAgICTMuWLY0xxnz55Zdm4MCBJiIiwjgcDhMcHGwGDRpkfv31V6dtFbSxd+9eExcXZ/z8/EytWrXME088YfLz883BgwdNr169TPXq1U1wcLB5/vnnSzTeubm5ZtKkSebKK680Xl5eJjw83IwbN86cPXvWqlPUWM2dO/eSbXfu3Nn06NHDGGNMkyZNzAMPPFBkva+//trccccdplatWsbb29tcddVV5vHHH3fa7wuXgtmY81/7bdu2GUlm3rx5hbaxcuVKI8l8/PHHxhhjDhw4YB588EFz1VVXGW9vbxMYGGhuv/12p1megvfihUvBbEyHDh0KzQSkp6eb++67zwQFBRmHw2GaN29eqD/79+83ksz06dPNP//5T2vs27RpY7Zu3epU98iRI+bee+81V1xxhfHy8jIhISGmV69eRc5GFejQoUOhPp//+Vi0aJG59tprjbe3t6lZs6aJi4szhw4dcmpj4MCBplq1aua7774z3bt3N76+vubWW28tdpuX+tw+++yzRpKZM2eOVVbcDME777xjrrvuOuPj42MCAgJMu3btzKpVq4wxv7/eF+5bwWuwbt26ImfLXNnfQ4cOmVtvvdVUq1bN1KpVy4wePdqcO3fOqe706dNNdHS0CQwMNN7e3ubaa681ixcvLrQfkkx8fLx59913TWRkpPH09DQffPCBCQ8PN7169SpU/8yZM8bPz88MGTKkyDEsEB4ebmJjYy9ax5iLj2/BeNSoUcP07dvXHDx40KlOwc/ZL7/80rRv3974+PiYBg0aWPu5fv16c/3111uf16Jm+g4dOmQGDRpkgoKCjJeXl4mMjDRvvvmmU52C12zhwoXmmWeeMVdccYVxOBymU6dOZt++fU79ufB1v9hsTGZmpvH09DRjxoxxKs/Ozja+vr5m8ODBlxw/u2EGphLJzMzUr7/+Wqg8Nzf3ks+dOHGiEhISdP/99+v6669XVlaWtm/fri+++EJ/+9vf9H//9386fPiwEhMT9c477zg91xijXr16ad26dRo8eLBatmypVatWacyYMfr55581Y8YMq+69996rRYsWacCAAWrbtq02bNig2NjYYvt1xx13qFGjRnr22WdljJEkJSYm6ocfftCgQYMUEhKi3bt3a86cOdq9e7c2b95c6CS8vn37qkmTJpo6daqWL1+uZ555RoGBgfrnP/+pTp066bnnntP8+fP1yCOP6LrrrlP79u0vOlb333+/3n77bd1+++0aPXq0tmzZooSEBH399ddasmSJJOmdd97RnDlztHXrVr3xxhuSpBtuuOGi7R4+fFjr1q3T22+/LUnq37+/ZsyYoVdffdVp5mLnzp1q166dqlSpoiFDhqh+/fr6/vvv9fHHH2vKlCm67bbb9O233+o///mPZsyYoVq1akmSateuXWibbdq00ZVXXqlFixZp4MCBTusWLlyoGjVqKCYmRpK0bds2ff755+rXr5/q1q2rAwcOaPbs2erYsaP27NmjqlWrqn379nr44Yf18ssv6/HHH1eTJk0kyfr3QmfOnFHHjh313XffadiwYYqIiNDixYt17733KiMjQ//4xz+c6i9YsEAnT57U//3f/8nNzU3Tpk3Tbbfdph9++EFVqlSRJPXp00e7d+/W8OHDVb9+fR09elSJiYk6ePCg6tevX2Q/xo8fr6uvvlpz5szRpEmTFBERoQYNGkj6/VyVQYMG6brrrlNCQoLS09M1c+ZMffbZZ9qxY4fTjM25c+cUExOjm266Sc8//7yqVq1a5PZKYsCAAXr88ce1evVqPfDAA8XWe/rppzVx4kTdcMMNmjRpkry8vLRlyxYlJSWpa9eueumllzR8+HD5+vpq/PjxkqTg4OBi23Nlf/Py8hQTE6OoqCg9//zzWrNmjV544QU1aNBADz74oFVv5syZ6tWrl+Li4pSTk6P33ntPd9xxh5YtW1bo85+UlKRFixZp2LBhqlWrliIiInT33Xdr2rRpOn78uAIDA626H3/8sbKysko0s5Kbm1vkz8dq1apZM1xFmTJlip588kndeeeduv/++/XLL7/olVdeUfv27QuNx4kTJ3TLLbeoX79+uuOOOzR79mz169dP8+fP14gRIzR06FDdddddmj59um6//Xb99NNPql69uiQpPT1dbdu2lZubm4YNG6batWtrxYoVGjx4sLKysjRixAinfk2dOlXu7u565JFHlJmZqWnTpikuLk5btmyR9Pt7OjMzU4cOHbJ+Bvv6+ha7n7t27dK5c+ecZgOl32dNW7ZsqR07dlx0fG2pohMUiv+r9/zlUjMwLVq0uORfKMWdA7N06VIjyTzzzDNO5bfffrtxc3Mz3333nTHGmJSUFCPJjBgxwqnevffeW+wMTP/+/Qtt77fffitU9p///MdIMhs3bizUxvl/nZ07d87UrVvXuLm5malTp1rlJ06cMD4+Pk5jUpTU1FQjydx///1O5Y888oiRZJKSkqyygr9QS+r55583Pj4+JisryxhjzLfffmskmSVLljjVa9++valevbr58ccfncrPn+262DkwF77248aNM1WqVDHHjx+3yrKzs01AQIC57777rLKixj05OdlIMv/+97+tsoudA3PhDMxLL71kJJl3333XKsvJyTHR0dHG19fXGouCGZiaNWs69fPDDz90miU6ceKENVPjqqJmRHJyckxQUJBp2rSp07kny5YtM5LMhAkTrLKCWcrHHnus1Nu7kL+/v2nVqpX1+MIZgn379hl3d3fz97//vdB5LOe/H4o7B+bCGZjS7O+kSZOc2mzVqpVp3bq1U9mF752cnBzTtGlT06lTJ6dyScbd3d3s3r3bqXzv3r1Gkpk9e7ZTea9evUz9+vUvea5YUbNQBUtCQoJV78LxPXDggPHw8DBTpkxxam/Xrl3G09PTqbxgxmPBggVW2TfffGPt0+bNm63yVatWFZqVHTx4sKlTp06hmeR+/foZf39/awwLXrMmTZo4nU82c+ZMI8ns2rXLKnPlHJiCz+35P0ML3HHHHSYkJKRE7dgJVyFVIrNmzVJiYmKhpXnz5pd8bkBAgHbv3q19+/a5vN1PPvlEHh4eevjhh53KR48eLWOMVqxYIen3S1Ql6aGHHnKqN3z48GLbHjp0aKGy8/9aOnv2rH799Ve1bdtWkvTFF18Uqn///fdb//fw8FCbNm1kjNHgwYOt8oCAAF199dX64Ycfiu2L9Pu+StKoUaOcykePHi1JWr58+UWffzHz589XbGys9RdZo0aN1Lp1a82fP9+q88svv2jjxo267777VK9ePafnl/byz759+yo3N1cffPCBVbZ69WplZGSob9++Vtn5456bm6tjx46pYcOGCggIKHLcS+KTTz5RSEiI+vfvb5VVqVLFuvJhw4YNhfpao0YN63G7du0kyXrdCs45Wr9+vU6cOFGqPp1v+/btOnr0qB566CGn8zBiY2PVuHHjIl/v82ce/ihfX9+LXo20dOlS5efna8KECXJ3d/5xXJr3Q2n298LPaLt27Qp9js5/75w4cUKZmZlq165dke+bDh06KDIy0qnsqquuUlRUlNNn4fjx41qxYoXi4uJKtK9RUVFF/nw8/713oQ8++ED5+fm688479euvv1pLSEiIGjVqpHXr1jnV9/X1Vb9+/azHV199tQICAtSkSRNFRUU59UX63/vWGKP3339fPXv2lDHGaVsxMTHKzMwsNFaDBg1ympm98LPgqjNnzkgq+hw5b29va/3lhENIlcj1119faPpPkmrUqFHk1On5Jk2apFtvvVVXXXWVmjZtqm7dumnAgAElCj8//vijQkNDrV+8BQoOG/z444/Wv+7u7oqIiHCq17Bhw2LbvrCu9PsPrqefflrvvfeedeJlgczMzEL1L/xF7+/vL29vb+vQyvnlx44dK7Yv5+/DhX0OCQlRQECAta+u+vrrr7Vjxw7dc889+u6776zyjh07atasWcrKypKfn5/1w6ksLosv0KJFCzVu3FgLFy60Qt3ChQtVq1YtderUyap35swZJSQkaO7cufr555+tQ3pS0eNeEj/++KMaNWpU6Jfvhe+dAhe+lgVhpiCsOBwOPffccxo9erSCg4PVtm1b3XLLLbrnnnsUEhJSqv5Jv/8iulDjxo21adMmpzJPT0/VrVvX5e0U59SpUwoKCip2/ffffy93d/dCv/BLy9X99fb2LnRoskaNGoXC47Jly/TMM88oNTVV2dnZVnlRwaOoz7wk3XPPPRo2bJh+/PFHhYeHa/HixcrNzdWAAQNKtG+1atVSly5dSlS3wL59+2SMUaNGjYpcX3DYskDdunUL7ZO/v7/CwsIKlUn/e9/+8ssvysjI0Jw5czRnzpwit3Xhz7pLfRZcVRAyz399Cpw9e/aih9nsigBzmWjfvr2+//57ffjhh1q9erXeeOMNzZgxQ6+//rrTDMafragPzZ133qnPP/9cY8aMUcuWLeXr66v8/Hx169ZN+fn5hep7eHiUqEyS0y/liynrm129++67kqSRI0dq5MiRhda///77GjRoUJlu83x9+/bVlClT9Ouvv6p69er66KOP1L9/f6crXoYPH665c+dqxIgRio6Olr+/v9zc3NSvX78ix708lOR1GzFihHr27KmlS5dq1apVevLJJ5WQkKCkpCS1atWqXPvncDgKhbHSOnTokDIzMy8a8Ctaca/H+T799FP16tVL7du312uvvaY6deqoSpUqmjt3rhYsWFCofnG/KPv166eRI0dq/vz5evzxx/Xuu++qTZs2RYatspKfny83NzetWLGiyH298JyS4sbjUu/bgs/P3XffXehctAIX/jH5R3+GXahOnTqSpCNHjhRad+TIEYWGhpaq3cqMAHMZCQwM1KBBgzRo0CCdOnVK7du318SJE60AU9wv7fDwcK1Zs0YnT550moX55ptvrPUF/+bn52v//v1Of9GcP+NwKSdOnNDatWv19NNPa8KECVZ5aQ59lUbBPuzbt8/pxNT09HRlZGRY++oKY4wWLFigm2++udDhNUmaPHmy5s+fr0GDBunKK6+UJH311VcXbdPVgNW3b189/fTTev/99xUcHKysrCynqXBJ+u9//6uBAwfqhRdesMrOnj1b6GZ5rmw7PDxcO3fuVH5+vtMv/gvfO65q0KCBRo8erdGjR2vfvn1q2bKlXnjhBSsoutI/Sdq7d6/TbFRBWWn7VxIFJ8sXnERdlAYNGig/P1979uy56J2eS/qalMf+vv/++/L29taqVaucDk/MnTvXpXYCAwMVGxur+fPnKy4uTp999pnLN2lzVYMGDWSMUUREhK666qpy207t2rVVvXp15eXluTxLdDGufBabNm0qT09Pbd++XXfeeadVnpOTo9TUVKeyywXnwFwmLjx04uvrq4YNGzpNJxbcz+LCX1g9evRQXl6eXn31VafyGTNmyM3NTd27d5f0vx/Er732mlO9V155pcT9LPir48K/Msr7B1mBHj16FLm9F198UZIuekVVcT777DMdOHBAgwYN0u23315o6du3r9atW6fDhw+rdu3aat++vd566y0dPHjQqZ3zx6S416o4TZo0UbNmzbRw4UItXLhQderUKXQ1loeHR6Fxf+WVV5SXl+dU5sq2e/ToobS0NC1cuNAqO3funF555RX5+vq6fA+c3377TWfPnnUqa9CggapXr17k1PiltGnTRkFBQXr99dednr9ixQp9/fXXpXq9SyIpKUmTJ09WRESE4uLiiq3Xu3dvubu7a9KkSYVmwS58P5Tk9SiP/fXw8JCbm5vT++TAgQNaunSpy20NGDBAe/bs0ZgxY+Th4VEoZJe12267TR4eHnr66acLvfeNMZc85FxSHh4e6tOnj95///0i/zj55ZdfStVutWrVSnx419/fX126dNG7777rdN7VO++8o1OnTumOO+4oVR8qM2ZgLhORkZHq2LGjWrdurcDAQG3fvl3//e9/NWzYMKtO69atJUkPP/ywYmJirB8gPXv21M0336zx48frwIEDatGihVavXq0PP/xQI0aMsC5Hbd26tfr06aOXXnpJx44dsy6j/vbbbyWV7K8FPz8/tW/fXtOmTVNubq6uuOIKrV69Wvv37y+HUSmsRYsWGjhwoObMmaOMjAx16NBBW7du1dtvv63evXvr5ptvdrnN+fPny8PDo9hfDr169dL48eP13nvvadSoUXr55Zd100036dprr9WQIUMUERGhAwcOaPny5UpNTZX0v9dq/Pjx6tevn6pUqaKePXte9KZqffv21YQJE+Tt7a3BgwcXOhRyyy236J133pG/v78iIyOVnJysNWvWqGbNmk71WrZsKQ8PDz333HPKzMyUw+FQp06dijyXY8iQIfrnP/+pe++9VykpKapfv77++9//Wn9dX3he1aV8++236ty5s+68805FRkbK09NTS5YsUXp6eql+2VWpUkXPPfecBg0apA4dOqh///7WZcX169cv8nCfq1asWKFvvvlG586dU3p6upKSkpSYmKjw8HB99NFHF72JW8OGDTV+/HhNnjxZ7dq102233SaHw6Ft27YpNDRUCQkJkn5/P8yePVvPPPOMGjZsqKCgoEIzLOW1v7GxsXrxxRfVrVs33XXXXTp69KhmzZqlhg0baufOnS63VbNmTS1evFjdu3e/6PlBF/r555+LnIHz9fVV7969i3xOgwYN9Mwzz2jcuHE6cOCAevfurerVq2v//v1asmSJhgwZokceecSlfSjO1KlTtW7dOkVFRemBBx5QZGSkjh8/ri+++EJr1qzR8ePHXW6zdevWWrhwoUaNGqXrrrtOvr6+6tmzZ7H1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IyPDaRYmPT1dISEhkqSQkBBt3brVqb2Cq5TOr3PhlUvp6eny8/OTj49Psf1yOBxyOByu7g4AALChP3wfmPz8fGVnZ6t169aqUqWK1q5da63bu3evDh48qOjoaElSdHS0du3apaNHj1p1EhMT5efnp8jISKvO+W0U1CloAwAAwKUZmHHjxql79+6qV6+eTp48qQULFmj9+vVatWqV/P39NXjwYI0aNUqBgYHy8/PT8OHDFR0drbZt20qSunbtqsjISA0YMEDTpk1TWlqannjiCcXHx1uzJ0OHDtWrr76qRx99VPfdd5+SkpK0aNEiLV9efleNAAAAe3EpwBw9elT33HOPjhw5In9/fzVv3lyrVq3S3/72N0nSjBkz5O7urj59+ig7O1sxMTF67bXXrOd7eHho2bJlevDBBxUdHa1q1app4MCBmjRpklUnIiJCy5cv18iRIzVz5kzVrVtXb7zxhmJiYspolwEAgN394fvAVFbcBwYXw31gAKByKvf7wAAAAFQUAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdAgwAALAdlwJMQkKCrrvuOlWvXl1BQUHq3bu39u7d61SnY8eOcnNzc1qGDh3qVOfgwYOKjY1V1apVFRQUpDFjxujcuXNOddavX69rr71WDodDDRs21Lx580q3hwAA4LLjUoDZsGGD4uPjtXnzZiUmJio3N1ddu3bV6dOnneo98MADOnLkiLVMmzbNWpeXl6fY2Fjl5OTo888/19tvv6158+ZpwoQJVp39+/crNjZWN998s1JTUzVixAjdf//9WrVq1R/cXQAAcDnwdKXyypUrnR7PmzdPQUFBSklJUfv27a3yqlWrKiQkpMg2Vq9erT179mjNmjUKDg5Wy5YtNXnyZI0dO1YTJ06Ul5eXXn/9dUVEROiFF16QJDVp0kSbNm3SjBkzFBMT4+o+AgCAy8wfOgcmMzNTkhQYGOhUPn/+fNWqVUtNmzbVuHHj9Ntvv1nrkpOT1axZMwUHB1tlMTExysrK0u7du606Xbp0cWozJiZGycnJxfYlOztbWVlZTgsAALg8uTQDc778/HyNGDFCN954o5o2bWqV33XXXQoPD1doaKh27typsWPHau/evfrggw8kSWlpaU7hRZL1OC0t7aJ1srKydObMGfn4+BTqT0JCgp5++unS7g4AALCRUgeY+Ph4ffXVV9q0aZNT+ZAhQ6z/N2vWTHXq1FHnzp31/fffq0GDBqXv6SWMGzdOo0aNsh5nZWUpLCys3LYHAAAqTqkOIQ0bNkzLli3TunXrVLdu3YvWjYqKkiR99913kqSQkBClp6c71Sl4XHDeTHF1/Pz8ipx9kSSHwyE/Pz+nBQAAXJ5cCjDGGA0bNkxLlixRUlKSIiIiLvmc1NRUSVKdOnUkSdHR0dq1a5eOHj1q1UlMTJSfn58iIyOtOmvXrnVqJzExUdHR0a50FwAAXKZcOoQUHx+vBQsW6MMPP1T16tWtc1b8/f3l4+Oj77//XgsWLFCPHj1Us2ZN7dy5UyNHjlT79u3VvHlzSVLXrl0VGRmpAQMGaNq0aUpLS9MTTzyh+Ph4ORwOSdLQoUP16quv6tFHH9V9992npKQkLVq0SMuXLy/j3Qfso/5j5ff+PzA1ttzaBoDy4NIMzOzZs5WZmamOHTuqTp061rJw4UJJkpeXl9asWaOuXbuqcePGGj16tPr06aOPP/7YasPDw0PLli2Th4eHoqOjdffdd+uee+7RpEmTrDoRERFavny5EhMT1aJFC73wwgt64403uIQaAABIcnEGxhhz0fVhYWHasGHDJdsJDw/XJ598ctE6HTt21I4dO1zpHgAA+Ivgu5AAAIDtlPoyagAAKiPOF/trYAYGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYjmdFd8CO+Kp2AAAqFjMwAADAdggwAADAdggwAADAdggwAADAdggwAADAdggwAADAdriMGgCAEiqv22hwCw3XMQMDAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABsx6UAk5CQoOuuu07Vq1dXUFCQevfurb179zrVOXv2rOLj41WzZk35+vqqT58+Sk9Pd6pz8OBBxcbGqmrVqgoKCtKYMWN07tw5pzrr16/XtddeK4fDoYYNG2revHml20MAAHDZcSnAbNiwQfHx8dq8ebMSExOVm5urrl276vTp01adkSNH6uOPP9bixYu1YcMGHT58WLfddpu1Pi8vT7GxscrJydHnn3+ut99+W/PmzdOECROsOvv371dsbKxuvvlmpaamasSIEbr//vu1atWqMthlAABgd56uVF65cqXT43nz5ikoKEgpKSlq3769MjMz9eabb2rBggXq1KmTJGnu3Llq0qSJNm/erLZt22r16tXas2eP1qxZo+DgYLVs2VKTJ0/W2LFjNXHiRHl5een1119XRESEXnjhBUlSkyZNtGnTJs2YMUMxMTFF9i07O1vZ2dnW46ysLJcGAgAA2McfOgcmMzNTkhQYGChJSklJUW5urrp06WLVady4serVq6fk5GRJUnJyspo1a6bg4GCrTkxMjLKysrR7926rzvltFNQpaKMoCQkJ8vf3t5awsLA/smsAAKASK3WAyc/P14gRI3TjjTeqadOmkqS0tDR5eXkpICDAqW5wcLDS0tKsOueHl4L1BesuVicrK0tnzpwpsj/jxo1TZmamtfz000+l3TUAAFDJuXQI6Xzx8fH66quvtGnTprLsT6k5HA45HI6K7gYAAPgTlGoGZtiwYVq2bJnWrVununXrWuUhISHKyclRRkaGU/309HSFhIRYdS68Kqng8aXq+Pn5ycfHpzRdBgAAlxGXAowxRsOGDdOSJUuUlJSkiIgIp/WtW7dWlSpVtHbtWqts7969OnjwoKKjoyVJ0dHR2rVrl44ePWrVSUxMlJ+fnyIjI60657dRUKegDQAA8Nfm0iGk+Ph4LViwQB9++KGqV69unbPi7+8vHx8f+fv7a/DgwRo1apQCAwPl5+en4cOHKzo6Wm3btpUkde3aVZGRkRowYICmTZumtLQ0PfHEE4qPj7cOAQ0dOlSvvvqqHn30Ud13331KSkrSokWLtHz58jLefQAAYEcuzcDMnj1bmZmZ6tixo+rUqWMtCxcutOrMmDFDt9xyi/r06aP27dsrJCREH3zwgbXew8NDy5Ytk4eHh6Kjo3X33Xfrnnvu0aRJk6w6ERERWr58uRITE9WiRQu98MILeuONN4q9hBoAAPy1uDQDY4y5ZB1vb2/NmjVLs2bNKrZOeHi4Pvnkk4u207FjR+3YscOV7gEAgL8IvgsJAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYDgEGAADYjmdFdwC43NR/bHlFdwEALnvMwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANvhqwQAAMUqz6/GODA1ttzaxuWPGRgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7BBgAAGA7LgeYjRs3qmfPngoNDZWbm5uWLl3qtP7ee++Vm5ub09KtWzenOsePH1dcXJz8/PwUEBCgwYMH69SpU051du7cqXbt2snb21thYWGaNm2a63sHAAAuSy4HmNOnT6tFixaaNWtWsXW6deumI0eOWMt//vMfp/VxcXHavXu3EhMTtWzZMm3cuFFDhgyx1mdlZalr164KDw9XSkqKpk+frokTJ2rOnDmudhcAAFyGPF19Qvfu3dW9e/eL1nE4HAoJCSly3ddff62VK1dq27ZtatOmjSTplVdeUY8ePfT8888rNDRU8+fPV05Ojt566y15eXnpmmuuUWpqql588UWnoAMAAP6ayuUcmPXr1ysoKEhXX321HnzwQR07dsxal5ycrICAACu8SFKXLl3k7u6uLVu2WHXat28vLy8vq05MTIz27t2rEydOFLnN7OxsZWVlOS0AAODyVOYBplu3bvr3v/+ttWvX6rnnntOGDRvUvXt35eXlSZLS0tIUFBTk9BxPT08FBgYqLS3NqhMcHOxUp+BxQZ0LJSQkyN/f31rCwsLKetcAAEAl4fIhpEvp16+f9f9mzZqpefPmatCggdavX6/OnTuX9eYs48aN06hRo6zHWVlZhBgAAC5T5X4Z9ZVXXqlatWrpu+++kySFhITo6NGjTnXOnTun48ePW+fNhISEKD093alOwePizq1xOBzy8/NzWgAAwOWp3APMoUOHdOzYMdWpU0eSFB0drYyMDKWkpFh1kpKSlJ+fr6ioKKvOxo0blZuba9VJTEzU1VdfrRo1apR3lwEAQCXncoA5deqUUlNTlZqaKknav3+/UlNTdfDgQZ06dUpjxozR5s2bdeDAAa1du1a33nqrGjZsqJiYGElSkyZN1K1bNz3wwAPaunWrPvvsMw0bNkz9+vVTaGioJOmuu+6Sl5eXBg8erN27d2vhwoWaOXOm0yEiAADw1+VygNm+fbtatWqlVq1aSZJGjRqlVq1aacKECfLw8NDOnTvVq1cvXXXVVRo8eLBat26tTz/9VA6Hw2pj/vz5aty4sTp37qwePXropptucrrHi7+/v1avXq39+/erdevWGj16tCZMmMAl1AAAQFIpTuLt2LGjjDHFrl+1atUl2wgMDNSCBQsuWqd58+b69NNPXe0eAAD4C+C7kAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO0QYAAAgO14VnQHAAB/TfUfW17RXYCNMQMDAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABsx+UAs3HjRvXs2VOhoaFyc3PT0qVLndYbYzRhwgTVqVNHPj4+6tKli/bt2+dU5/jx44qLi5Ofn58CAgI0ePBgnTp1yqnOzp071a5dO3l7eyssLEzTpk1zfe8AAMBlyeUAc/r0abVo0UKzZs0qcv20adP08ssv6/XXX9eWLVtUrVo1xcTE6OzZs1aduLg47d69W4mJiVq2bJk2btyoIUOGWOuzsrLUtWtXhYeHKyUlRdOnT9fEiRM1Z86cUuwiAAC43Hi6+oTu3bure/fuRa4zxuill17SE088oVtvvVWS9O9//1vBwcFaunSp+vXrp6+//lorV67Utm3b1KZNG0nSK6+8oh49euj5559XaGio5s+fr5ycHL311lvy8vLSNddco9TUVL344otOQQcAAPw1lek5MPv371daWpq6dOlilfn7+ysqKkrJycmSpOTkZAUEBFjhRZK6dOkid3d3bdmyxarTvn17eXl5WXViYmK0d+9enThxoshtZ2dnKysry2kBAACXpzINMGlpaZKk4OBgp/Lg4GBrXVpamoKCgpzWe3p6KjAw0KlOUW2cv40LJSQkyN/f31rCwsL++A4BAIBKyeVDSJXVuHHjNGrUKOtxVlYWIeZPUv+x5eXW9oGpseXWNgDAvsp0BiYkJESSlJ6e7lSenp5urQsJCdHRo0ed1p87d07Hjx93qlNUG+dv40IOh0N+fn5OCwAAuDyVaYCJiIhQSEiI1q5da5VlZWVpy5Ytio6OliRFR0crIyNDKSkpVp2kpCTl5+crKirKqrNx40bl5uZadRITE3X11VerRo0aZdllAABgQy4HmFOnTik1NVWpqamSfj9xNzU1VQcPHpSbm5tGjBihZ555Rh999JF27dqle+65R6Ghoerdu7ckqUmTJurWrZseeOABbd26VZ999pmGDRumfv36KTQ0VJJ01113ycvLS4MHD9bu3bu1cOFCzZw50+kQEQAA+Oty+RyY7du36+abb7YeF4SKgQMHat68eXr00Ud1+vRpDRkyRBkZGbrpppu0cuVKeXt7W8+ZP3++hg0bps6dO8vd3V19+vTRyy+/bK339/fX6tWrFR8fr9atW6tWrVqaMGECl1ADAABJpQgwHTt2lDGm2PVubm6aNGmSJk2aVGydwMBALViw4KLbad68uT799FNXuwcAAP4CLpurkHB5Ks8rnAAA9sWXOQIAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANshwAAAANvxrOgOAKh49R9bXi7tHpgaWy7tAgAzMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHYIMAAAwHY8K7oDcFb/seXl0u6BqbHl0i4AABWBAPMXUV7BCACAisAhJAAAYDsEGAAAYDsEGAAAYDtlHmAmTpwoNzc3p6Vx48bW+rNnzyo+Pl41a9aUr6+v+vTpo/T0dKc2Dh48qNjYWFWtWlVBQUEaM2aMzp07V9ZdBQAANlUuJ/Fec801WrNmzf824vm/zYwcOVLLly/X4sWL5e/vr2HDhum2227TZ599JknKy8tTbGysQkJC9Pnnn+vIkSO65557VKVKFT377LPl0V0AAGAz5RJgPD09FRISUqg8MzNTb775phYsWKBOnTpJkubOnasmTZpo8+bNatu2rVavXq09e/ZozZo1Cg4OVsuWLTV58mSNHTtWEydOlJeXV3l0GQAA2Ei5nAOzb98+hYaG6sorr1RcXJwOHjwoSUpJSVFubq66dOli1W3cuLHq1aun5ORkSVJycrKaNWum4OBgq05MTIyysrK0e/fuYreZnZ2trKwspwUAAFyeyjzAREVFad68eVq5cqVmz56t/fv3q127djp58qTS0tLk5eWlgIAAp+cEBwcrLS1NkpSWluYUXgrWF6wrTkJCgvz9/a0lLCysbHcMAABUGmV+CKl79+7W/5s3b66oqCiFh4dr0aJF8vHxKevNWcaNG6dRo0ZZj7OysggxAABcpsr9MuqAgABdddVV+u677xQSEqKcnBxlZGQ41UlPT7fOmQkJCSl0VVLB46LOqyngcDjk5+fntAAAgMtTuQeYU6dO6fvvv1edOnXUunVrValSRWvXrrXW7927VwcPHlR0dLQkKTo6Wrt27dLRo0etOomJifLz81NkZGR5dxcAANhAmR9CeuSRR9SzZ0+Fh4fr8OHDeuqpp+Th4aH+/fvL399fgwcP1qhRoxQYGCg/Pz8NHz5c0dHRatu2rSSpa9euioyM1IABAzRt2jSlpaXpiSeeUHx8vBwOR1l3FwAA2FCZB5hDhw6pf//+OnbsmGrXrq2bbrpJmzdvVu3atSVJM2bMkLu7u/r06aPs7GzFxMTotddes57v4eGhZcuW6cEHH1R0dLSqVaumgQMHatKkSWXdVQAAYFNlHmDee++9i6739vbWrFmzNGvWrGLrhIeH65NPPinrrgEAgMsE34UEAABshwADAABshwADAABshwADAABshwADAABshwADAABshwADAABsp8zvAwMAAFxT/7Hl5db2gamx5dZ2RWIGBgAA2A4BBgAA2A4B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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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97u156uvvtLhw4dd4369UxtlypSRn59fLvdS/sMRixxITEzU6dOnPcqvXLly3WVHjBihhIQE9evXT/Xr11dSUpI2b96srVu3qlWrVnrmmWd0/PhxrVixQtOnT3db1hijjh07as2aNerbt69q1aqlZcuW6cUXX9SxY8c0fvx4V90+ffpo3rx56t27tx544AGtW7dO7dq1y7JdXbp0UcWKFfXmm2+6QsqKFSv0888/Ky4uTuHh4dq1a5cmT56sXbt2aePGjR5vvN26dVOVKlU0ZswYffXVVxo1apSKFi2qjz76SC1atNDYsWM1c+ZMDR06VPXq1VOTJk2y3Vf9+vXTp59+qscff1xDhgzRd999p4SEBP34449auHChJGn69OmaPHmyvv/+e/3zn/+UJDVs2DDb9R4/flxr1qxxfaj26NFD48eP19///ne3v/R37Nihxo0by8/PT/3791dUVJQOHDigf//73xo9erQeffRR/fTTT5o9e7bGjx+v4sWLS5JKlCjhsc26deuqXLlymjdvnuuDNd3cuXNVpEgRtW7dWpK0adMmffvtt+revbvKli2rQ4cOadKkSWrWrJl2796tu+66S02aNNHAgQP1/vvv65VXXlGVKlUkyfVvRhcvXlSzZs20f/9+Pffcc4qOjtb8+fPVp08fnTt3Tn/961/d6s+aNUvJycl65pln5HA49NZbb+nRRx/Vzz//7HpDfOyxx7Rr1y49//zzioqK0qlTp7RixQr98ssvWb6xvvrqq6pUqZImT56sN954Q9HR0SpfvrykP8JSXFyc6tWrp4SEBJ08eVLvvfeevvnmG23bts3tCMfVq1fVunVrNWrUSOPGjdNdd92V6fZyonfv3nrllVe0fPlyPf3001nWi4+P14gRI9SwYUO98cYb8vf313fffafVq1fr4Ycf1oQJE/T8888rKCjIFT5LlSqV5fq86W9qaqpat26tmJgYjRs3TitXrtQ777yj8uXL6y9/+Yur3nvvvaeOHTuqZ8+eunz5subMmaMuXbroyy+/9Hj9r169WvPmzdNzzz2n4sWLKzo6Wr169dJbb72l3377TUWLFnXV/fe//62kpKQcHYm4cuVKpu+PhQsXdh0Ryszo0aP12muvqWvXrurXr59+/fVXffDBB2rSpInH/jh79qzat2+v7t27q0uXLpo0aZK6d++umTNnatCg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V/Hx8R7PfWPMdU+d5pSvr68ee+wxLViwINM/Gn799ddcrbdw4cK5Pk15J+CIRR6rWrWqmjVrpjp16qho0aLavHmzPvvsMz333HOuOnXq1JEkDRw4UK1bt3a9sDt06KDmzZvr1Vdf1aFDh1SzZk0tX75cixcv1qBBg1zT9urUqaPHHntMEyZM0JkzZ1zTTX/66SdJOUvXISEhatKkid566y1duXJFd999t5YvX66DBw/mwV7xVLNmTcXGxmry5Mk6d+6cmjZtqu+//16ffvqpOnfurObNm3u9zpkzZ8rX1zfLN+2OHTvq1Vdf1Zw5czR48GC9//77atSoke6//371799f0dHROnTokL766itt375d0v/G6tVXX1X37t3l5+enDh06ZPtlTd26ddPrr7+ugIAA9e3b1+OQfvv27TV9+nSFhoaqatWq2rBhg1auXKlixYq51atVq5Z8fX01duxYJSYmyul0qkWLFpleK9C/f3999NFH6tOnj7Zs2aKoqCh99tlnrr9GM163cz0//fSTHnroIXXt2lVVq1ZVoUKFtHDhQp08eTJXH0J+fn4aO3as4uLi1LRpU/Xo0cM1/TIqKirT01beWrJkifbs2aOrV6/q5MmTWr16tVasWKHIyEh98cUX2X45VIUKFfTqq69q5MiRaty4sR599FE5nU5t2rRJZcqUUUJCgqQ/ng+TJk3SqFGjVKFCBZUsWdLjiERe9bddu3Z699131aZNGz3xxBM6deqUJk6cqAoVKmjHjh1er6tYsWKaP3++2rZtm+31JxkdO3Ys0yNWQUFB6ty5c6bLlC9fXqNGjdKwYcN06NAhde7cWcHBwTp48KAWLlyo/v37a+jQoV71IStjxozRmjVrFBMTo6efflpVq1bVb7/9pq1bt2rlypX67bffvF5nnTp1NHfuXA0ePFj16tVTUFCQOnTokGX9HTt26IsvvpD0x5HkxMREjRo1StIf733ZLZsv3expKPlJbr7SO+OUw1GjRpn69eubsLAwExgYaCpXrmxGjx7t9tXPV69eNc8//7wpUaKEcTgcbtOykpOTzQsvvGDKlClj/Pz8TMWKFc3bb7/tMQ3swoULZsCAAaZo0aImKCjIdO7c2TWV7Nrpn+nTvn799VeP/hw9etT86U9/MmFhYSY0NNR06dLFHD9+PMspqxnXkdU00Mz2U2auXLli4uPjTXR0tPHz8zMRERFm2LBh5tKlSznazrUuX75sihUrZho3bpxtvejoaLdphz/88INrHwQEBJhKlSqZ1157zW2ZkSNHmrvvvtv4+Pi4TT3NOPbp9u3b55qC95///Mfj8bNnz5q4uDhTvHhxExQUZFq3bm327NmT6fo+/vhjU65cOePr6+s2nTHjdFNjjDl58qRrvf7+/ua+++5zm4ZnzP+mm2Y2jfTacT99+rQZMGCAqVy5silcuLAJDQ01MTExZt68eZ47NYPsXkdz5841tWvXNk6n0xQtWtT07NnTHD161K2Ot9OLM04T9/f3N+Hh4aZVq1bmvffec021vVZWXzk9ZcoUV/uKFClimjZt6vbV5CdOnDDt2rUzwcHBRpJrDDJON7XR38za+Mknn5iKFSsap9NpKleubKZOnZppPUlmwIAB2e63Z5991mNa5/VkN9302imVWe3fBQsWmEaNGpnChQubwoULm8qVK5sBAwaYvXv3uupk9f4RGRmZ6VT+zPp68uRJM2DAABMREWH8/PxMeHi4eeihh8zkyZNdddLHbP78+W7Lpr9Grn3tnD9/3jzxxBMmLCzMo6+Zye6rC643FT8/chjDFSkF1fbt21W7dm3NmDEj199UCODO8MILL+iTTz7RiRMnbugLyACusSggLl686FE2YcIE+fj4XPcbLwHc2S5duqQZM2boscceI1TghnGNRQHx1ltvacuWLWrevLkKFSqkJUuWaMmSJerfv7/HXG8AkP74DoeVK1fqs88+05kzZzy+6h3IDYJFAdGwYUOtWLFCI0eO1Pnz53XPPfdoxIgRrt8wAICMdu/erZ49e6pkyZJ6//33s51aC+QU11gAAABruMYCAABYQ7AAAADW3PRrLNLS0nT8+HEFBwfztagAAOQTxhglJyerTJky2f52z00PFsePH2eWAgAA+dSRI0ey/bXhmx4s0r9K+MiRIwoJCbnZmwcAALmQlJSkiIiI6/4kwE0PFumnP0JCQggWAADkM9e7jIGLNwEAgDUECwAAYA3BAgAAWEOwAAAA1hAsAACANQQLAABgDcECAABYQ7AAAADWECwAAIA1BAsAAGCN18Hi2LFj6tWrl4oVK6bAwEDdd9992rx5c160DQAA5DNe/VbI2bNn9eCDD6p58+ZasmSJSpQooX379qlIkSJ51T4AAJCPeBUsxo4dq4iICE2d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fftq27Zt6ty5szp37qwffvjBVeett97S+++/rw8//FDfffedChcurNatW+vSpUs3o0vX5W2f165dqx49emjNmjXasGGDIiIi9PDDD+vYsWNu9dq0aaP//ve/rtvs2bNvRndyzNt+S398/e21fTp8+LDb4wVtrD///HO3/v7www/y9fVVly5d3Ord7mN94cIF1axZUxMnTsxR/YMHD6pdu3Zq3ry5tm/frkGDBqlfv35uH7S5ef7cTN72ef369WrVqpW+/vprbdmyRc2bN1eHDh20bds2t3rVqlVzG+v//Oc/edH8XPO23+n27t3r1q+SJUu6HitoY/3ee++59fXIkSMqWrSox+v6dh9rK8xNUL9+fTNgwADX/dTUVFOmTBmTkJCQaf2uXbuadu3auZXFxMSYZ555xhhjTFpamgkPDzdvv/226/Fz584Zp9NpZs+enQc98J63fc7o6tWrJjg42Hz66aeustjYWNOpUyfbTbXK235PnTrVhIaGZrm+O2Gsx48fb4KDg8358+ddZflhrK8lySxcuDDbOn/7299MtWrV3Mq6detmWrdu7bp/o/vyZspJnzNTtWpVEx8f77o/fPhwU7NmTXsNy2M56feaNWuMJHP27Nks6xT0sV64cKFxOBzm0KFDrrL8Nta5ledHLC5fvqwtW7aoZcuWrjIfHx+1bNlSGzZsyHSZDRs2uNWXpNatW7vqHzx4UCdOnHCrExoaqpiYmCzXeTPlps8Z/f7777py5YqKFi3qVr527VqVLFlSlSpV0l/+8hedOXPGattvRG77ff78eUVGRioiIkKdOnXSrl27XI/dCWP9ySefqHv37ipcuLBb+e081rlxvde1jX15u0tLS1NycrLH63rfvn0qU6aMypUrp549e+qXX365RS20q1atWipdurRatWqlb775xlV+J4z1J598opYtWyoyMtKtvKCO9bXyPFicPn1aqampHl/5XapUKY/zbelOnDiRbf30f71Z582Umz5n9NJLL6lMmTJuL7w2bdroX//6l1atWqWxY8dq3bp1atu2rVJTU622P7dy0+9KlSppypQpWrx4sWbMmKG0tDQ1bNhQR48elVTwx/r777/XDz/8oH79+rmV3+5jnRtZva6TkpJ08eJFK6+b2924ceN0/vx5de3a1VUWExOjadOmaenSpZo0aZIOHjyoxo0bKzk5+Ra29MaULl1aH374oRYsWKAFCxYoIiJCzZo109atWyXZeY+8nR0/flxLlizxeF0XxLHOjNe/FYK8N2bMGM2ZM0dr1651u5Cxe/furv/fd999qlGjhsqXL6+1a9fqoYceuhVNvWENGjRw+2Xchg0bqkqVKvroo480cuTIW9iym+OTTz7Rfffdp/r167uVF8SxvtPNmjVL8fHxWrx4sdu1Bm3btnX9v0aNGoqJiVFkZKTmzZunvn373oqm3rBKlSqpUqVKrvsNGzbUgQMHNH78eE2fPv0Wtuzm+PTTTxUWFqbOnTu7lRfEsc5Mnh+xKF68uHx9fXXy5Em38pMnTyo8PDzTZcLDw7Otn/6vN+u8mXLT53Tjxo3TmDFjtHz5ctWoUSPbuuXKlVPx4sW1f//+G26zDTfS73R+fn6qXbu2q08FeawvXLigOXPm5OgN5XYb69zI6nUdEhKiwMBAK8+f29WcOXPUr18/zZs3z+N0UEZhYWG699578/VYZ6Z+/fquPhXksTbGaMqUKerdu7f8/f2zrVtQxzrPg4W/v7/q1KmjVatWucrS0tK0atUqt79Ur9WgQQO3+pK0YsUKV/3o6GiFh4e71UlKStJ3332X5Tpvptz0Wfpj9sPIkSO1dOlS1a1b97rbOXr0qM6cOaPSpUtbafeNym2/r5WamqqdO3e6+lRQx1r6Y0p1SkqKevXqdd3t3G5jnRvXe13beP7cjmbPnq24uDjNnj3bbUpxVs6fP68DBw7k67HOzPbt2119KqhjLUnr1q3T/v37c/QHQ0Ed65syK2TOnDnG6XSaadOmmd27d5v+/fubsLAwc+LECWOMMb179zYvv/yyq/4333xjChUqZMaNG2d+/PFHM3z4cOPn52d27tzpqjNmzBgTFhZmFi9ebHbs2GE6depkoqOjzcWLF29Gl67L2z6PGTPG+Pv7m88++8z897//dd2Sk5ONMcYkJyeboUOHmg0bNpiDBw+alStXmvvvv99UrFjRXLp06Zb0MTPe9js+Pt4sW7bMHDhwwGzZssV0797dBAQEmF27drnqFLSxTteoUSPTrVs3j/L8MtbJyclm27ZtZtu2bUaSeffdd822bdvM4cOHjTHGvPzyy6Z3796u+j///LO56667zIsvvmh+/PFHM3HiROPr62uWLl3qqnO9fXmredvnmTNnmkKFCpmJEye6va7PnTvnqjNkyBCzdu1ac/DgQfPNN9+Yli1bmuLFi5tTp07d9P5lxdt+jx8/3ixatMjs27fP7Ny50/z1r381Pj4+ZuXKla46BW2s0/Xq1cvExMRkus78MNY23JRgYYwxH3zwgbnnnnuMv7+/qV+/vtm4caPrsaZNm5rY2Fi3+vPmzTP33nuv8ff3N9WqVTNfffWV2+NpaWnmtddeM6VKlTJOp9M89NBDZu/evTejKznmTZ8jIyONJI/b8OHDjTHG/P777+bhhx82JUqUMH5+fiYyMtI8/fTTt82L8Fre9HvQoEGuuqVKlTKPPPKI2bp1q9v6CtpYG2PMnj17jCSzfPlyj3Xll7FOn1KY8Zbe19jYWNO0aVOPZWrVqmX8/f1NuXLlzNSpUz3Wm92+vNW87XPTpk2zrW/MH1NuS5cubfz9/c3dd99tunXrZvbv339zO3Yd3vZ77Nixpnz58iYgIMAULVrUNGvWzKxevdpjvQVprI35Yyp8YGCgmTx5cqbrzA9jbYPDGGPy+KAIAAC4Q/BbIQAAwBqCBQAAsIZgAQAArCFYAAAAawgWAADAGoIFAACwhmABAACsIVgAAABrCBYAAMAaggUAALCGYAEAAKz5/0ZENAZMsLPdAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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EhISTPXq1U2FChVMkyZNzMsvv+zSJ/8xmz9/vhk/fry58MILTUBAgOnatavZtm2bSz0FH/fizoKc7p133jGSzDvvvFPi257vmPnwkMzMTB06dMitPScn56y3TUlJUVpamu688061a9dOWVlZWr9+vTZu3Kirr75ad999t/bt26fly5dr9uzZLrc1xqh3795atWqVBg8erBYtWmjp0qV66KGH9Msvv+iZZ55x9h00aJAWLFig2267TZdddpk+/vhjxcbGFlnXzTffrAYNGujxxx+XMUaStHz5cv38889KSEhQzZo1tWXLFs2YMUNbtmzR2rVr3XYY69+/vxo3bqyJEyfq/fff1/jx4xUeHq7p06era9eueuKJJzRnzhw9+OCDatu2rWJiYs64re688069+uqr6tu3r0aMGKEvvvhCaWlp+v7777Vo0SJJ0uzZszVjxgx9+eWX+s9//iNJuvzyy8+43n379mnVqlV69dVXJUkDBw7UM888oylTprjMGHzzzTfq2LGjypcvryFDhigqKko//fST3n33XU2YMEE33nijfvzxR73++ut65plnVLVqVUlStWrV3MZs06aNLrroIi1YsEDx8fEu182fP1+VK1dW9+7dJUnr1q3TZ599pgEDBqh27drauXOnpk2bps6dO+u7777TBRdcoJiYGN1333167rnn9Mgjj6hx48aS5Py3oD/++EOdO3fW9u3bNXToUEVHR+uNN97QoEGDdOTIEd1///0u/efOnaujR4/q7rvvlsPh0KRJk3TjjTfq559/Vvny5SVJN910k7Zs2aJhw4YpKipKBw4c0PLly7V7925FRUUVWsejjz6qiy++WDNmzNDYsWMVHR2tevXqSfpr34yEhAS1bdtWaWlpysjI0LPPPqtPP/1UX331lctMyZ9//qnu3bvryiuv1JNPPqkLLrig0PGK47bbbtMjjzyiZcuW6a677iqyX2pqqlJSUnT55Zdr7NixqlChgr744gutXLlS11xzjdLT0zVs2DAFBwfr0UcflSTVqFGjyPWV5P7m5uaqe/fuat++vZ588kl99NFHeuqpp1SvXj3961//cvZ79tln1bt3b8XFxenUqVOaN2+ebr75Zr333ntur/+VK1dqwYIFGjp0qKpWraro6GjdeuutmjRpkn7//XeFh4c7+7777rvKysoq1oxGTk5Ooe+PFStWdM4sFWbChAkaNWqU+vXrpzvvvFMHDx7U888/r5iYGLftcfjwYfXs2VMDBgzQzTffrGnTpmnAgAGaM2eOhg8frnvuuUe33HKLJk+erL59+2rPnj0KCQmRJGVkZOiyyy6Tw+HQ0KFDVa1aNS1ZskSDBw9WVlaWhg8f7lLXxIkT5efnpwcffFCZmZmaNGmS4uLi9MUXX0j66zmdmZmpvXv3Ot+Dg4ODz7qdCtq/f78kOd9HyhRfp5/Srqhvm6cvZ5v5aN68+Vm/GRS1z8fixYuNJDN+/HiX9r59+xqHw2G2b99ujDFmw4YNRpIZPny4S79BgwYVOfMxcOBAt/FOnDjh1vb6668bSWbNmjVu6zj9W9Gff/5pateubRwOh5k4caKz/fDhwyYoKMhlmxRm06ZNRpK58847XdoffPBBI8msXLnS2Zb/zbC4nnzySRMUFGSysrKMMcb8+OOPRpJZtGiRS7+YmBgTEhJidu3a5dJ++izTmfb5KPjYJycnm/Lly5vff//d2ZadnW3CwsLMHXfc4WwrbLt//vnnRpL573//62w70z4fBWc+0tPTjSTz2muvOdtOnTplOnToYIKDg53bIn/mo0qVKi51vv322y6zM4cPH3bOkJRUYTMRp06dMtWrVzdNmzZ12dfivffeM5LM6NGjnW35s4MjR4485/EKCg0NNS1btnReLvjNfNu2bcbPz8/ccMMNbvttnP58KGqfj4IzH+dyf8eOHeuyzpYtW5rWrVu7tBV87pw6dco0bdrUdO3a1aVdkvHz8zNbtmxxad+6dauRZKZNm+bS3rt3bxMVFXXWfaMKm/3JX9LS0pz9Cm7fnTt3Gn9/fzNhwgSX9W3evNmUK1fOpT1/pmHu3LnOth9++MF5n9auXetsX7p0qdts6ODBg02tWrXcZnAHDBhgQkNDndsw/zFr3Lixy/5Tzz77rJFkNm/e7GwryT4fhcnOzjZNmjQx0dHRJicn55zXc77iaBcPmTp1qpYvX+62NGvW7Ky3DQsL05YtW7Rt27YSj/vBBx/I399f9913n0v7iBEjZIzRkiVLJP11GKMk3XvvvS79hg0bVuS677nnHre207+lnDx5UocOHdJll10mSdq4caNb/zvvvNP5f39/f7Vp00bGGA0ePNjZHhYWposvvlg///xzkbVIf91XSUpKSnJpHzFihCTp/fffP+Ptz2TOnDmKjY11fhNq0KCBWrdurTlz5jj7HDx4UGvWrNEdd9yhunXrutz+XA8R7N+/v3JycvTWW28525YtW6YjR46of//+zrbTt3tOTo5+++031a9fX2FhYYVu9+L44IMPVLNmTQ0cONDZVr58ed133306duyYPv74Y7daK1eu7LzcsWNHSXI+bvn72KxevVqHDx8+p5pOt379eh04cED33nuvy34HsbGxatSoUaGP9+nf+P+u4ODgMx71snjxYuXl5Wn06NHy83N9Kz2X58O53N+Cr9GOHTu6vY5Of+4cPnxYmZmZ6tixY6HPm06dOqlJkyYubQ0bNlT79u1dXgu///67lixZori4uGLd1/bt2xf6/nj6c6+gt956S3l5eerXr58OHTrkXGrWrKkGDRpo1apVLv2Dg4M1YMAA5+WLL75YYWFhaty4sdq3b+9Si/S/560xRgsXLlSvXr1kjHEZq3v37srMzHTbVgkJCS4zogVfC54wdOhQfffdd5oyZYpH9zU6X5S9e+Qj7dq1c9lxLV/lypULnW483dixY3X99derYcOGatq0qa699lrddtttxQouu3btUkREhPNDM1/+VPuuXbuc//r5+Sk6Otql35l2YirYV/rrTSc1NVXz5s1z7iSYLzMz061/wQ/p0NBQBQYGuk0jhoaG6rfffiuyltPvQ8Gaa9asqbCwMOd9Lanvv/9eX331lW6//XZt377d2d65c2dNnTpVWVlZqlSpkvONxROHTudr3ry5GjVqpPnz5zsD2fz581W1alV17drV2e+PP/5QWlqaZs6cqV9++cX5M5hU+HYvjl27dqlBgwZuH5wFnzv5Cj6W+UEkP2gEBAToiSee0IgRI1SjRg1ddtll6tmzp26//XbVrFnznOqT/voQKahRo0b65JNPXNrKlSun2rVrl3icohw7dkzVq1cv8vqffvpJfn5+bh/W56qk9zcwMNDt57zKlSu7Bb/33ntP48eP16ZNm5Sdne1sLyw0FPaal6Tbb79dQ4cO1a5duxQZGak33nhDOTk5uu2224p136pWrapu3boVq2++bdu2yRijBg0aFHp9/k99+WrXru12n0JDQ1WnTh23Nul/z9uDBw/qyJEjmjFjhmbMmFHoWAXf6872Wvi7Jk+erJdeeknjxo3Tdddd55F1nm8IH+eBmJgY/fTTT3r77be1bNky/ec//9EzzzyjF1980WXmwLbCfovt16+fPvvsMz300ENq0aKFgoODlZeXp2uvvVZ5eXlu/f39/YvVJsnlA/VMPH0iotdee02S9MADD+iBBx5wu37hwoVKSEjw6Jin69+/vyZMmKBDhw4pJCRE77zzjgYOHOjybWfYsGGaOXOmhg8frg4dOig0NFQOh0MDBgwodLt7Q3Eet+HDh6tXr15avHixli5dqlGjRiktLU0rV65Uy5YtvVpfQECAW5A6V3v37lVmZuZ5fYRBUY/H6f7v//5PvXv3VkxMjF544QXVqlVL5cuX18yZMzV37ly3/kXtfzFgwAA98MADmjNnjh555BG99tpratOmTaFByVPy8vLkcDi0ZMmSQu9rwX0oitoeZ3ve5r9+br31Vrd9r/IV/CL4d9/DzmTWrFl6+OGHdc899+ixxx772+s7XxE+zhPh4eFKSEhQQkKCjh07ppiYGKWkpDjDR1EfuJGRkfroo4909OhRl9mPH374wXl9/r95eXnasWOHyzeJ07/pn83hw4e1YsUKpaamavTo0c72c/m56Fzk34dt27a57ESZkZGhI0eOOO9rSRhjNHfuXHXp0sXtJylJGjdunObMmaOEhARddNFFkqRvv/32jOssaTjq37+/UlNTtXDhQtWoUUNZWVku08eS9Oabbyo+Pl5PPfWUs+3kyZNuJzIrydiRkZH65ptvlJeX5/KhXfC5U1L16tXTiBEjNGLECG3btk0tWrTQU0895Qx5JalPkrZu3eoyC5Tfdq71FUf+jt35O/wWpl69esrLy9N33313xjPoFvcx8cb9XbhwoQIDA7V06VKXw7xnzpxZovWEh4crNjZWc+bMUVxcnD799NNin0DrXNWrV0/GGEVHR6thw4ZeG6datWoKCQlRbm5uiWdnzuRcviS9/fbbuvPOO3XjjTdq6tSpHqvlfMQ+H+eBgj83BAcHq379+i5TpPnnKyj4YXPdddcpNzdXU6ZMcWl/5pln5HA41KNHD0n/exN94YUXXPo9//zzxa4zP+0XTPfefhPKlz/9WHC8p59+WpLOeOROUT799FPt3LlTCQkJ6tu3r9vSv39/rVq1Svv27VO1atUUExOjV155Rbt373ZZz+nbpKjHqiiNGzfWpZdeqvnz52v+/PmqVauW21E//v7+btv9+eefdzv7YUnGvu6667R//37Nnz/f2fbnn3/q+eefV3BwcInPcXLixAmdPHnSpa1evXoKCQlxeS4XV5s2bVS9enW9+OKLLrdfsmSJvv/++3N6vItj5cqVGjdunKKjoxUXF1dkvz59+sjPz09jx451m30q+HwozuPhjfvr7+8vh8Ph8jzZuXOnFi9eXOJ13Xbbbfruu+/00EMPyd/f3y0ge9qNN94of39/paamuj33jTFn/Zm2uPz9/XXTTTdp4cKFhX6xOHjw4Dmtt2LFiiX6SXTNmjUaMGCAYmJiNGfOHI/N4p2vmPk4DzRp0kSdO3dW69atFR4ervXr1+vNN9/U0KFDnX1at24tSbrvvvvUvXt354u/V69e6tKlix599FHt3LlTzZs317Jly/T2229r+PDhzkMWW7durZtuuknp6en67bffnIfa/vjjj5KKl9IrVaqkmJgYTZo0STk5Obrwwgu1bNky7dixwwtbxV3z5s0VHx+vGTNm6MiRI+rUqZO+/PJLvfrqq+rTp4+6dOlS4nXOmTNH/v7+Rb6x9+7dW48++qjmzZunpKQkPffcc7ryyivVqlUrDRkyRNHR0dq5c6fef/99bdq0SdL/HqtHH31UAwYMUPny5dWrV68znvCqf//+Gj16tAIDAzV48GC3N56ePXtq9uzZCg0NVZMmTfT555/ro48+UpUqVVz6tWjRQv7+/nriiSeUmZmpgIAAde3atdB9F4YMGaLp06dr0KBB2rBhg6KiovTmm286v9UW3I/obH788UddddVV6tevn5o0aaJy5cpp0aJFysjIOKcPqvLly+uJJ55QQkKCOnXqpIEDBzoPPY2Kiir0J7KSWrJkiX744Qf9+eefysjI0MqVK7V8+XJFRkbqnXfeOeMJturXr69HH31U48aNU8eOHXXjjTcqICBA69atU0REhNLS0iT99XyYNm2axo8fr/r166t69epuMxveur+xsbF6+umnde211+qWW27RgQMHNHXqVNWvX1/ffPNNiddVpUoVvfHGG+rRo8cZ94cp6Jdffil05is4OFh9+vQp9Db16tXT+PHjlZycrJ07d6pPnz4KCQnRjh07tGjRIg0ZMkQPPvhgie5DUSZOnKhVq1apffv2uuuuu9SkSRP9/vvv2rhxoz766CP9/vvvJV5n69atNX/+fCUlJalt27YKDg5Wr169Cu27a9cu9e7dWw6HQ3379tUbb7zhcn2zZs2KtQ9g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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA/2klEQVR4nO3deXiNd/7/8ddJZCObINuIxFaRWr9BpFUUFcQ2tVcJ1Zq2oSVqNF2sbaPo0BplzLR0SoaitLSW2GI6DUXHRSlFbUUSa0JakeX+/eGXM46EColzh+fjus7F+dyf87nf932217m3WAzDMAQAAGAiDvYuAAAA4EYEFAAAYDoEFAAAYDoEFAAAYDoEFAAAYDoEFAAAYDoEFAAAYDoEFAAAYDoEFAAAYDoEFJMKCQnRoEGD7F3GfW/q1KmqUaOGHB0d1ahRI3uXI8m+z33r1q3VunVru8z7dqxZs0aNGjWSq6urLBaLLl68aO+SbIwfP14Wi6XExtu8ebMsFos2b95cYmOWZSW9fmFuBJR7YP78+bJYLNqxY0eR01u3bq169erd9Xy+/vprjR8//q7HeVCsW7dOf/7zn/Xoo49q3rx5euedd27rcb1795bFYtGYMWPueN7ffvutxo8fb5cv2H379mn8+PE6evToPZ/33Th37px69+4tNzc3zZo1S59++qkqVKhQavMreN8W3FxdXRUYGKioqCh98MEHunTpUonN68MPP9T8+fNLbLyyJiQkxGZdX3/r0KGDvcsrNYmJiZoxY8Zt93/nnXfUvHlzValSRa6urqpdu7ZGjBihM2fOlF6RdmThb/GUvvnz52vw4MHavn27mjRpUmh669atdfbsWf3www/WtuzsbDk4OMjJyem25zNs2DDNmjVLPKW359VXX9XUqVP122+/ydnZ+bYek5mZKT8/P/n7+ysvL0/Hjh27o19006ZN0+jRo3XkyBGFhITYTLuT5744li5dql69emnTpk2FtpZcvXpVkm57fdxLa9asUceOHZWUlKR27dqV+vwK3rcTJ05U9erVlZOTo9TUVG3evFlJSUmqVq2avvzySzVo0MD6mNzcXOXm5srV1bVY86pXr54qV65caEtJfn6+rl69KmdnZzk43L+/J0NCQlSxYkWNGjWq0LTAwEC1adNG0rUtKBMmTLhvPuM6d+6sH3744bZ/LPTo0UNVqlRRaGioPDw89OOPP+rvf/+7fH19tWvXrlIN7PZQzt4FoGguLi72LqHYsrKyytQbJD09XW5ubsX6Ml62bJny8vL08ccfq02bNtqyZYtatWpVonXZ87k3YzApkJ6eLkny9vYusTFv5zXbsWNHmx8W8fHx2rhxozp37qyuXbvqxx9/lJubmySpXLlyKleu5D5WHRwcih127qWCAFUSNf7hD3/Q008/XQJV3b+WLVtWqC0yMlI9e/bUypUr1bdvXztUVXru30hext14HEJOTo4mTJig2rVry9XVVZUqVVKLFi2UlJQkSRo0aJBmzZolSTabRwtkZWVp1KhRCgoKkouLi+rUqaNp06YV+iXy22+/6aWXXlLlypXl4eGhrl276uTJk7JYLDa7jwr2Be/bt09PPfWUKlasqBYtWkiSdu/erUGDBqlGjRpydXWVv7+/nnnmGZ07d85mXgVj/PTTT3r66afl5eWlKlWq6M0335RhGDpx4oS6desmT09P+fv767333rutdZebm6tJkyapZs2acnFxUUhIiF577TVlZ2db+1gsFs2bN09ZWVnWdXU7m9gXLlyoJ554Qo8//rjq1q2rhQsXFtlv//796t27t6pUqSI3NzfVqVNHr7/+unW5R48eLUmqXr26df4Fv6Kuf+537Nghi8WiTz75pNA81q5dK4vFolWrVkmSjh07phdffFF16tSRm5ubKlWqpF69etn8Ops/f7569eolSXr88cet8y745V7UMSjp6ekaMmSI/Pz85OrqqoYNGxaq5+jRo7JYLJo2bZrmzp1rXfdNmzbV9u3bbfqmpqZq8ODBqlq1qlxcXBQQEKBu3brd8ldk69atFRMTI0lq2rSpLBaLzftjyZIlCg8Pl5ubmypXrqynn35aJ0+etBlj0KBBcnd31+HDh9WpUyd5eHiof//+N53nrbRp00Zvvvmmjh07pgULFljbb3aMxIIFC9SsWTOVL19eFStWVMuWLbVu3TpJ157vvXv3Kjk52fp8FDwHNzsGpTjLe/LkSXXv3l3u7u6qUqWKXnnlFeXl5dn0nTZtmh555BFVqlRJbm5uCg8P19KlSwsth8Vi0bBhw7Rw4UI9/PDDcnFx0erVqxUSEqJu3boV6n/lyhV5eXnpT3/6022t1zu1YMEC6/rw8fFR3759deLECZs+BbvSd+/erVatWql8+fKqVauWdTmTk5MVERFhfb+uX7++0HxOnjypZ555Rn5+fnJxcdHDDz+sjz/+2KZPwXP22Wef6e2331bVqlXl6uqqtm3b6tChQzb1fPXVV9atsBaLpdDW1NtR8BizHY9VEtiCcg9lZGTo7NmzhdpzcnJ+97Hjx49XQkKCnn32WTVr1kyZmZnasWOHvv/+ez3xxBP605/+pFOnTikpKUmffvqpzWMNw1DXrl21adMmDRkyRI0aNdLatWs1evRonTx5UtOnT7f2HTRokD777DMNGDBAzZs3V3JysqKjo29aV69evVS7dm2988471rCTlJSkn3/+WYMHD5a/v7/27t2ruXPnau/evdq6dWuhD/A+ffqobt26mjx5sr766iu99dZb8vHx0d/+9je1adNG7777rhYuXKhXXnlFTZs2VcuWLW+5rp599ll98skn6tmzp0aNGqVt27YpISFBP/74o5YvXy5J+vTTTzV37lx99913+sc//iFJeuSRR2457qlTp7Rp0ybrl3O/fv00ffp0/fWvf7XZ8rB792499thjcnJy0tChQxUSEqLDhw9r5cqVevvtt/Xkk0/qp59+0r/+9S9Nnz5dlStXliRVqVKl0DybNGmiGjVq6LPPPrN+QRdYvHixKlasqKioKEnS9u3b9e2336pv376qWrWqjh49qtmzZ6t169bat2+fypcvr5YtW+qll17SBx98oNdee01169aVJOu/N/rtt9/UunVrHTp0SMOGDVP16tW1ZMkSDRo0SBcvXtTLL79s0z8xMVGXLl3Sn/70J1ksFk2ZMkVPPvmkfv75Z+suqx49emjv3r0aPny4QkJClJ6erqSkJB0/fvymH9Cvv/666tSpo7lz51p3udSsWVPS/3bFNG3aVAkJCUpLS9P777+v//znP/rvf/9rs8UlNzdXUVFRatGihaZNm6by5csXOb/bMWDAAL322mtat26dnnvuuZv2mzBhgsaPH69HHnlEEydOlLOzs7Zt26aNGzeqffv2mjFjhoYPHy53d3driPXz87vpeMVZ3ry8PEVFRSkiIkLTpk3T+vXr9d5776lmzZp64YUXrP3ef/99de3aVf3799fVq1e1aNEi9erVS6tWrSr0/t+4caM+++wzDRs2TJUrV1b16tX19NNPa8qUKTp//rx8fHysfVeuXKnMzMzb2jKSk5NT5OdjhQoVrFuoivL222/rzTff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LVvq448/1vHjx23GuX6d3Oy5upm6deuqfv36Wrx4sRYvXqyAgIBCZzM5OjoWWu8zZ84sdEppcebdqVMnpaamavHixda23NxczZw5U+7u7sW+Bsyvv/6qK1eu2LTVrFlTHh4eNq/l29WkSRP5+vpqzpw5No9fvXq1fvzxxzt6vm/Hxo0bNWnSJFWvXv2Wpyp3795dDg4OmjhxYqGtWDe+Hm7n+SiN5XV0dJTFYrF5nRw9elQrVqwo9lgDBgzQvn37NHr0aDk6Opb6dTmefPJJOTo6FnnxNuP/n+1SEhwdHdWjRw8tW7asyB8fd3ol1woVKtx2sMjKytKvv/5aqH3ZsmW6cOFCkYcPlHVsQSkjwsLC1Lp1a4WHh8vHx0c7duzQ0qVLNWzYMGuf8PBwSdJLL72kqKgo6wdEly5d9Pjjj+v111/X0aNH1bBhQ61bt05ffPGFRowYYT1dMzw8XD169NCMGTN07tw562nGP/30k6TbS/uenp5q2bKlpkyZopycHP3hD3/QunXrdOTIkVJYK4U1bNhQMTExmjt3ri5evKhWrVrpu+++0yeffKLu3bvr8ccfL/aYCxculKOj400//Lt27arXX39dixYtUlxcnD744AO1aNFC//d//6ehQ4eqevXqOnr0qL766ivt2rVL0v+eq9dff119+/aVk5OTunTpcsuLhvXp00djx46Vq6urhgwZUmhXRefOnfXpp5/Ky8tLYWFhSklJ0fr161WpUiWbfo0aNZKjo6PeffddZWRkyMXFRW3atCnyWIqhQ4fqb3/7mwYNGqSdO3cqJCRES5cutf46vvG4pt/z008/qW3bturdu7fCwsJUrlw5LV++XGlpaXf0Zebk5KR3331XgwcPVqtWrdSvXz/rabchISFF7o4rrtWrV2v//v3Kzc1VWlqaNm7cqKSkJAUHB+vLL7+85UXKatWqpddff12TJk3SY489pieffFIuLi7avn27AgMDlZCQIOna62H27Nl66623VKtWLfn6+hbaQlJayxsdHa2//OUv6tChg5566imlp6dr1qxZqlWrlnbv3l3ssSpVqqQlS5aoY8eOtzw+50YnT54scguau7u7unfvXuRjatasqbfeekvx8fE6evSounfvLg8PDx05ckTLly/X0KFD9corrxRrGW5m8uTJ2rRpkyIiIvTcc88pLCxM58+f1/fff6/1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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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J/J8HnnkEf35z3/WDTfc4OKWql3Y81FF8vLydOLEiTLthYWFF73vxIkTlZaWpvvvv19dunSR3W7Xjh07tGvXLt1888168MEHdezYMa1fv16vvfaa030Nw9Dtt9+uTZs2acSIEerQoYPWrVunxx57TEePHtXs2bMdyw4bNkwrVqzQvffeq65du2rz5s2Kj48/b10DBgxQy5Yt9fTTTzuCzPr16/X9998rMTFRwcHB+vrrr7V48WJ9/fXX2rp1a5kP50GDBql169aaPn263nvvPU2dOlUBAQF68cUX1bt3b82YMUPLli3To48+qs6dO6tHjx4X3Fb333+/Xn31Vd15550aO3astm3bprS0NH3zzTdatWqVJOm1117T4sWL9dlnn+kf//iHJKlbt24X7PfYsWPatGmT44v3rrvu0uzZs/XCCy847TH44osvdMMNN8jT01MjR45UeHi4vvvuO61Zs0bTpk1T//79tX//fr3++uuaPXu2GjZsKElq1KhRmXV26tRJV111lVasWOH48i2xfPlyNWjQQHFxcZJ+Pyzx6aefavDgwWratKkOHTqkhQsXqlevXtqzZ4+uuOIK9ejRQw8//LDmzp2rJ554Qq1bt5Ykx7+l/frrr+rVq5e+/fZbjRo1ShEREVq5cqWGDRum3NxcPfLII07LZ2Rk6NSpU3rwwQdlsVg0c+ZM9e/fX99//708PT0lSQkJCfr66681evRohYeH6/jx41q/fr2OHDly3g/fJ598Uq1atdLixYsdh0GaN28u6fdAlZiYqM6dOystLU05OTl6/vnn9e9//1uff/65056S3377TXFxcerevbueeeYZXXHFFeWuryLuvfdePfHEE/rwww/1wAMPnHe5SZMmaeLEierWrZsmT56sevXqadu2bdq4caP+9Kc/ac6cORo9erR8fHwcATUoKOi8/bnyeIuKihQXF6fo6Gg988wz2rBhg5599lk1b95cf/3rXx3LPf/887r99ts1ZMgQnT17Vm+88YYGDBigd999t8z7f+PGjVqxYoVGjRqlhg0bKiIiQvfcc49mzpypn3/+WQEBAY5l16xZI7vdXqE9GoWFheV+PtavX9+xZ6k806ZN0/jx4zVw4EDdf//9+vHHHzVv3jz16NGjzPY4efKkbrvtNg0ePFgDBgzQwoULNXjwYC1btkzJycn6y1/+orvvvluzZs3SnXfeqaysLPn6+kqScnJy1LVrV0cAa9SokdauXasRI0bIbreXOXQyffp0ubm56dFHH1VeXp5mzpypIUOGaNu2bZJ+f03n5eXphx9+cHwG+/j4XHQ7rVy5Up9++qm++eabWnfelssMXJL09HRD0gWntm3bOt2nWbNmxtChQx2327dvb8THx19wPUlJSUZ5T9fq1asNScbUqVOd2u+8807DYrEY3377rWEYhrFz505DkpGcnOy03LBhwwxJxlNPPeVoe+qppwxJxl133VVmfb/88kuZttdff92QZHz88cdl+hg5cqSj7bfffjOaNm1qWCwWY/r06Y72kydPGt7e3k7bpDy7d+82JBn333+/U/ujjz5qSDI2btzoaBs6dKhRv379C/Z3rmeeecbw9vY27Ha7YRiGsX//fkOSsWrVKqflevToYfj6+hqHDx92ai8uLnb8f9asWYYk4+DBg2XWU/q5T01NNTw9PY2ff/7Z0VZQUGD4+/sbw4cPd7SVt923bNliSDL++c9/OtpWrlxpSDI2bdpUZvmePXsaPXv2dNyeM2eOIclYunSpo+3s2bNGTEyM4ePj49gWBw8eNCQZgYGBTnW+/fbbhiRjzZo1hmH8/jxKMmbNmlVm3RdT8j7avn27Uy2NGzc22rVrZ/z666+O9nfffdeQZEyYMMHRNnToUEOSMW7cuEqvrzSbzWZ07NjRcbvkNV3iwIEDhpubm/HnP//ZKCoqcrrvua+Htm3bOm33Eps2bXJ6rirzeCdPnuzUZ8eOHY2oqCinttKvnbNnzxrt2rUzevfu7dQuyXBzczO+/vprp/Z9+/YZkoyFCxc6td9+++1GeHi402MtT7Nmzc772ZiWluZYrvT2PXTokOHu7m5MmzbNqb8vv/zS8PDwcGrv2bOnIcnIyMhwtO3du9fxmLZu3epoX7dunSHJSE9Pd7SNGDHCaNKkiXHixAmndQ0ePNiw2WyObVjynLVu3dooKChwLPf8888bkowvv/zS0RYfH280a9bsgtvmXL/88osRFhZmpKamOq1r5cqVFe6jNuGwSxWZP3++1q9fX2Y694S18/H399fXX3+tAwcOuLze999/X+7u7nr44Yed2seOHSvDMLR27VpJvw9jlKSHHnrIabnRo0eft++//OUvZdrO/SslPz9fJ06cUNeuXSVJu3btKrP8/fff7/i/u7u7OnXqJMMwNGLECEe7v7+/WrVqpe+///68tUi/P1ZJSklJcWovOZHtvffeu+D9L2TZsmWKj493/CXUsmVLRUVFOR16+fHHH/Xxxx9r+PDhCgsLc7p/ZYcIDho0SIWFhfrXv/7laPvwww+Vm5urQYMGOdrO3e6FhYX66aef1KJFC/n7+5e73Svi/fffV3BwsO666y5Hm6enpx5++GGdPn1amzdvLlNrgwYNHLdLdguXPG8l59h89NFHOnnyZKVqOteOHTt0/PhxPfTQQ07nHcTHxysyMrLc5/vcv/gvlY+PzwVHvaxevVrFxcWaMGFCmZOIK/N6qMzjLf0eveGGG8q8j8597Zw8eVJ5eXm64YYbyn3d9OzZU23atHFqu/rqqxUdHe30Xvj555+1du1aDRkypEKPNTo6utzPx3Nfe6X961//UnFxsQYOHKgTJ044puDgYLVs2VKbNm1yWt7Hx0eDBw923G7VqpX8/f3VunVrRUdHO9Ui/e91axiG3nrrLfXt21eGYTitKy4uTnl5eWW2VWJiotMe0dLvhcqYPn26CgsL9cQTT1S6j9qEwy5VpEuXLk4nrpVo0KBBubsbzzV58mTdcccduvrqq9WuXTvdcsstuvfeeysUXA4fPqyQkBDHl2aJkl3thw8fdvzr5uamiIgIp+VatGhx3r5LLyv9/qEzadIkvfHGG46TBEvk5eWVWb70l7TNZpOXl5fjcMS57aXPGymt5DGUrjk4OFj+/v6Ox+qqb775Rp9//rnuu+++Msdt58+fL7vdLj8/P8cHS1UMnS7Rvn17RUZGavny5Y5Atnz5cjVs2FC9e/d2LPfrr78qLS1N6enpOnr0qNP5POVt94o4fPiwWrZsWeaLs/Rrp0Tp57IkiJQEDavVqhkzZmjs2LEKCgpS165dddttt+m+++5TcHBwpeqTfv8SKS0yMlKffPKJU5uHh4eaNm3q8nrO5/Tp02rcuPF553/33Xdyc3Mr82VdWa4+Xi8vrzKH8xo0aFAm+L377ruaOnWqdu/eXebcqNLKe89L0n333adRo0bp8OHDatasmVauXKnCwkLde++9FXpsDRs2dHkU04EDB2QYhlq2bFnu/JJDfSWaNm1a5jHZbDaFhoaWaZP+97r98ccflZubq8WLF2vx4sXlrqv0Z93F3guuOnTokGbNmqX58+dX6PBMXUD4uAz06NFD3333nd5++219+OGH+sc//qHZs2dr0aJFTnsOzFbesdiBAwfq008/1WOPPaYOHTrIx8dHxcXFuuWWW1RcXFxmeXd39wq1SSpzguz5VPWFiEpOKhwzZozGjBlTZv5bb72lxMTEKl3nuQYNGqRp06bpxIkT8vX11TvvvKO77rrLaWTF6NGjlZ6eruTkZMXExMhms8lisWjw4MHlbvfqUJHnLTk5WX379tXq1au1bt06jR8/Xmlpadq4caM6duxYrfVZrdYqG8b8ww8/KC8v74LhvKad7/k41//93//p9ttvV48ePbRgwQI1adJEnp6eSk9PV0ZGRpnlz3f+xeDBgzVmzBgtW7ZMTzzxhJYuXapOnTqVG5SqSnFxsSwWi9auXVvuYy39JX2+7XGx123J++eee+4pc+5VidJ/CF7qZ1hpEyZM0JVXXqlevXo5zvXIzs6W9Hs4OnTokMLCwqp1mL7ZCB+XiYCAACUmJioxMVGnT59Wjx49NHHiREf4ON8XbrNmzbRhwwadOnXKae/H3r17HfNL/i0uLtbBgwed/pI49y/9izl58qQyMzM1adIkpyFglTlcVBklj+HAgQNOJ1Hm5OQoNzfX8VhdYRiGMjIydOONN5Y5JCVJU6ZM0bJly5SYmKirrrpK0u9D4S7E1XA0aNAgTZo0SW+99ZaCgoJkt9uddh9L0ptvvqmhQ4c6jQrKz88vcyEzV9bdrFkzffHFFyouLnb6UCv92nFV8+bNNXbsWI0dO1YHDhxQhw4d9OyzzzqNHKlofdLv10Y5dy9QSVtl66uIkhO7S074LU/z5s1VXFysPXv2XPAKuhV9Tqrj8b711lvy8vLSunXrnIZ5p6enu9RPQECA4uPjtWzZMg0ZMkT//ve/K30BrYpq3ry5DMNQRESErr766mpbT6NGjeTr66uioqIqvcaMK+/FI0eO6Ntvv3V8xpyr5HPp5MmTVToUvabVnRhVi5U+3ODj46MWLVo47SItuV5B6S+bW2+9VUVFRXrhhRec2mfPni2LxaI+ffpI+t+H6IIFC5yWmzdvXoXrLEn7pdN9dX8Ilbj11lvLXd9zzz0nSRccuXM+//73v3Xo0CElJibqzjvvLDMNGjRImzZt0rFjx9SoUSP16NFDL7/8so4cOeLUz7nb5HzP1fm0bt1a11xzjZYvX67ly5erSZMmZUb9uLu7l9nu8+bNKzOs0pV133rrrcrOztby5csdbb/99pvmzZsnHx8fl69x8ssvvyg/P9+prXnz5vL19XV6LVdUp06d1LhxYy1atMjp/mvXrtU333xTqee7IjZu3KgpU6YoIiLigsN1+/XrJzc3N02ePLnM3qfSr4eKPB/V8Xjd3d1lsVicXieHDh3S6tWrXe7r3nvv1Z49e/TYY4/J3d29TECuav3795e7u7smTZpU5rVvGMZFD9NWlLu7uxISEvTWW2+V+4fFjz/+WKl+69evX+FDolOnTtWqVaucpilTpkiSHn/8ca1atapWXWepItjzcRlo06aNevXqpaioKAUEBGjHjh168803NWrUKMcyUVFRkqSHH35YcXFxjjd/3759deONN+rJJ5/UoUOH1L59e3344Yd6++23lZyc7BiyGBUVpYSEBM2ZM0c//fSTY6jt/v37JVUspfv5+alHjx6aOXOmCgsLdeWVV+rDDz/UwYMHq2GrlNW+fXsNHTpUixcvVm5urnr27KnPPvtMr776qvr166cbb7zR5T6XLVsmd3f3836w33777XryySf1xhtvKCUlRXPnzlX37t113XXXaeTIkYqIiNChQ4f03nvvaffu3ZL+91w9+eSTGjx4sDw9PdW3b98LfngMGjRIEyZMkJeXl0aMGFFm9+ptt92m1157TTabTW3atNGWLVu0YcMGBQYGOi3XoUMHubu7a8aMGcrLy5PValXv3r3LPXdh5MiRevHFFzVs2DDt3LlT4eHhevPNNx1/1ZY+j+hi9u/fr5tuukkDBw5UmzZt5OHhoVWrViknJ6dSX1Senp6aMWOGEhMT1bNnT911112Ooafh4eHlHiJz1dq1a7V371799ttvysnJ0caNG7V+/Xo1a9ZM77zzzgUvsNWiRQs9+eSTmjJlim644Qb1799fVqtV27dvV0hIiNLS0iT9/npYuHChpk6dqhYtWqhx48Zl9mxU1+ONj4/Xc889p1tuuUV33323jh8/rvnz56tFixb64osvXO4rMDBQK1euVJ8+fS54PkxpR48eLXfPl4+Pj/r161fufZo3b66pU6cqNTVVhw4dUr9+/eTr66uDBw9q1apVGjlypB599FGXHsP5TJ8+XZs2bVJ0dLQeeOABtWnTRj///LN27dqlDRs26Oeff3a5z6ioKC1fvlwpKSnq3LmzfHx81Ldv33KXLbmO0rlK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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGzCAYAAACPa3XZAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4s0lEQVR4nO3deXRURcLG4bcToBNISAhLQiQmYREQBZQlwrCERQMiy4hsAgPI4ijgsOmIjkAEJ4CMoE7EYQZBZUcExoV9/VRQATkoCAICspggCAkghCX1/eFJD51OIB2SgoTfc04f6Orqe6tu9e1+c++tbocxxggAAMASn5vdAAAAcHshfAAAAKsIHwAAwCrCBwAAsIrwAQAArCJ8AAAAqwgfAADAKsIHAACwivABAACsInzcBFFRUerdu/fNbkah9+qrr6pixYry9fVV7dq1b3ZzJN3csY+NjVVsbOxNWXdOLF++XLVr15afn58cDodOnz59s5vkZsyYMXI4HHm2vPXr18vhcGj9+vV5tsyCLK+3L25thI8bNHPmTDkcDm3ZsiXLx2NjY3XPPffc8Ho+/fRTjRkz5oaXc7tYuXKlnnvuOf3hD3/QjBkz9Pe//z1Hz+vcubMcDof++te/5nrdX3zxhcaMGXNTPjx37dqlMWPG6ODBg9bXfSNOnjypzp07y9/fX4mJiXr//fdVokSJfFtfxn6bcfPz81N4eLji4uL0xhtv6MyZM3m2rrfeekszZ87Ms+UVNFFRUW7b+upbq1atbnbz8s2cOXM0ZcqUHNePjY29rbZRkZvdgNvRnj175OPjXe779NNPlZiYSADJobVr18rHx0fTp09XsWLFcvSc1NRUffTRR4qKitLcuXM1fvz4XP0l9sUXXyg+Pl69e/dWcHCw22O5GXtv7Nq1S/Hx8YqNjVVUVJTbYytXrsy39d6or7/+WmfOnNHYsWPVsmVLa+t9+eWXFR0drUuXLikpKUnr16/XkCFD9Nprr+m///2vatas6ar7t7/9Tc8//7zX63jrrbdUpkwZjyNeTZo00fnz53P8+izIateureHDh3uUh4eH34TW2DFnzhx99913GjJkSI6fU6FCBSUkJLiVFdZtRPi4CZxO581ugtfOnTuXr3+J5rXjx4/L39/fqzf2RYsW6cqVK3rnnXfUvHlzbdy4UU2bNs3Tdt3Msb+VP+SOHz8uSR5h7Ubk5DXbunVr1a1b13V/5MiRWrt2rR555BG1a9dO33//vfz9/SVJRYoUUZEiefeW6ePjIz8/vzxbXl5LT0/XxYsX86SNd9xxh3r06JEHrSrcgoKCbpvtxGmXmyDzef9Lly4pPj5eVapUkZ+fn0qXLq1GjRpp1apVkqTevXsrMTFRktwOx2U4d+6chg8froiICDmdTlWtWlWTJk1S5h8sPn/+vJ555hmVKVNGgYGBateunY4ePSqHw+F2RCXj3OuuXbv0+OOPq1SpUmrUqJEkaceOHerdu7cqVqwoPz8/hYWF6YknntDJkyfd1pWxjB9++EE9evRQUFCQypYtq5deeknGGB0+fFjt27dXyZIlFRYWpn/84x852naXL1/W2LFjValSJTmdTkVFRemFF15QWlqaq47D4dCMGTN07tw517bKyWHv2bNn68EHH1SzZs1UvXp1zZ49O8t6u3fvVufOnVW2bFn5+/uratWqevHFF139fvbZZyVJ0dHRrvVnnAa5euy3bNkih8Ohd99912MdK1askMPh0McffyxJOnTokJ5++mlVrVpV/v7+Kl26tDp16uR2emXmzJnq1KmTJKlZs2audWdcU5DVNR/Hjx9X3759FRoaKj8/P9WqVcujPQcPHpTD4dCkSZM0bdo017avV6+evv76a7e6SUlJ6tOnjypUqCCn06ny5curffv21zwNFBsbq169ekmS6tWrJ4fD4bZ/LFy4UHXq1JG/v7/KlCmjHj166OjRo27L6N27twICArR//349/PDDCgwMVPfu3bNd57U0b95cL730kg4dOqRZs2a5yrO7JmHWrFmqX7++ihcvrlKlSqlJkyauo0xRUVHauXOnNmzY4BqPjDHI7poPb/p79OhRdejQQQEBASpbtqxGjBihK1euuNWdNGmSGjZsqNKlS8vf31916tTRBx984NEPh8OhQYMGafbs2apRo4acTqeWLVumqKgotW/f3qP+hQsXFBQUpCeffDJH2zW3Zs2a5doeISEh6tq1qw4fPuxWJ+P09o4dO9S0aVMVL15clStXdvVzw4YNiomJce2vq1ev9ljP0aNH9cQTTyg0NFROp1M1atTQO++841YnY8wWLFigV155RRUqVJCfn59atGihffv2ubXnk08+0aFDh1zjnvlIZHYuX76ss2fPermVCh6OfOSRlJQUnThxwqP80qVL133umDFjlJCQoH79+ql+/fpKTU3Vli1btG3bNj344IN68skndezYMa1atUrvv/++23ONMWrXrp3WrVunvn37qnbt2lqxYoWeffZZHT16VJMnT3bV7d27txYsWKCePXvqgQce0IYNG9SmTZts29WpUydVqVJFf//7311BZtWqVfrxxx/Vp08fhYWFaefOnZo2bZp27typzZs3e7w5d+nSRdWrV9f48eP1ySefaNy4cQoJCdG//vUvNW/eXBMmTNDs2bM1YsQI1atXT02aNLnmturXr5/effddPfbYYxo+fLi+/PJLJSQk6Pvvv9fixYslSe+//76mTZumr776Sv/5z38kSQ0bNrzmco8dO6Z169a5Pni7deumyZMn65///KfbEYMdO3aocePGKlq0qAYMGKCoqCjt379fH330kV555RU9+uij+uGHHzR37lxNnjxZZcqUkSSVLVvWY51169ZVxYoVtWDBAteHb4b58+erVKlSiouLk/T7aYkvvvhCXbt2VYUKFXTw4EFNnTpVsbGx2rVrl4oXL64mTZromWee0RtvvKEXXnhB1atXlyTXv5mdP39esbGx2rdvnwYNGqTo6GgtXLhQvXv31unTp/WXv/zFrf6cOXN05swZPfnkk3I4HJo4caIeffRR/fjjjypatKgkqWPHjtq5c6cGDx6sqKgoHT9+XKtWrdJPP/2U7Zvviy++qKpVq2ratGmu0yCVKlWS9Hug6tOnj+rVq6eEhAQlJyfr9ddf1+eff65vvvnG7UjJ5cuXFRcXp0aNGmnSpEkqXrx4luvLiZ49e+qFF17QypUr1b9//2zrxcfHa8yYMWrYsKFefvllFStWTF9++aXWrl2rhx56SFOmTNHgwYMVEBDgCqihoaHZLs+b/l65ckVxcXGKiYnRpEmTtHr1av3jH/9QpUqV9NRTT7nqvf7662rXrp26d++uixcvat68eerUqZM+/vhjj/1/7dq1WrBggQYNGqQyZcooOjpaPXr00MSJE/Xrr78qJCTEVfejjz5Sampqjv5Sv3TpUpbvjyVKlHAdWcrKK6+8opdeekmdO3dWv3799Msvv+jNN99UkyZNPLbHqVOn9Mgjj6hr167q1KmTpk6dqq5du2r27NkaMmSI/vznP+vxxx/Xq6++qscee0yHDx9WYGCgJCk5OVkPPPCAK4CVLVtWy5YtU9++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uOBWVqlSJQUGBrq9lnOqbt26KleunN5++2235y9btkzff/99rsY7J9auXauxY8cqOjr6mtN1O3ToIB8fH7388sseR58yvx5yMh750V9fX185HA6318nBgwe1ZMkSr5fVs2dP7dq1S88++6x8fX09AnJee/TRR+Xr66v4+HiP174x5rqnaXPK19dXHTt21KJFi7L8w+KXX37J1XJLlCiR41OiqampHvuIMUbjxo2TdO0QXFBx5OMWcPfddys2NlZ16tRRSEiItmzZog8++ECDBg1y1alTp44k6ZlnnlFcXJxr52/btq2aNWumF198UQcPHlStWrW0cuVKLV26VEOGDHFNWaxTp446duyoKVOm6OTJk66ptj/88IOknKX0kiVLqkmTJpo4caIuXbqkO+64QytXrtSBAwfyYat4qlWrlnr16qVp06bp9OnTatq0qb766iu9++676tChg5o1a+b1MmfPni1fX99s39jbtWunF198UfPmzdOwYcP0xhtvqFGjRrr//vs1YMAARUdH6+DBg/rkk0+0fft2Sf8bqxdffFFdu3ZV0aJF1bZt22t+4VWXLl00atQo+fn5qW/fvh6nDx555BG9//77CgoK0t13361NmzZp9erVKl26tFu92rVry9fXVxMmTFBKSoqcTqeaN2+e5bULAwYM0L/+9S/17t1bW7duVVRUlD744APXX7WZryO6nh9++EEtWrRQ586ddffdd6tIkSJavHixkpOTc/VBVbRoUU2YMEF9+vRR06ZN1a1bN9fU06ioqCxPkXlr2bJl2r17ty5fvqzk5GStXbtWq1atUmRkpP773/9e8wu2KleurBdffFFjx45V48aN9eijj8rpdOrrr79WeHi465sq69Spo6lTp2rcuHGqXLmyypUr53FkI7/626ZNG7322mtq1aqVHn/8cR0/flyJiYmqXLmyduzY4fWySpcurYULF6p169bXvB4ms6NHj2Z55CsgIEAdOnTI8jmVKlXSuHHjNHLkSB08eFAdOnRQYGCgDhw4oMWLF2vAgAEaMWKEV33Izvjx47Vu3TrFxMSof//+uvvuu/Xrr79q27ZtWr16da5Oe9SpU0fz58/XsGHDVK9ePQUEBKht27ZZ1t22bZu6deumbt26qXLlyjp//rwWL16szz//XAMGDND9999/o1289VieXVPoXG/KXtOmTa871Xbc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KwoNDXUrDw0N1e7duz3qJyQkKD4+3qM8IiIir5sGALecoCk3uwW3B7azu/zcHmfOnFFQUNA169z0H5YbOXKkhg0b5rqfnp6uX3/9VaVLl5bD4bjh5aempioiIkKHDx9WyZIlb3h5BcHt1mf6W/jdbn2+3for3X59Loz9NcbozJkzCg8Pv27dPA8fZcqUka+vr5KTk93Kk5OTFRYW5lHf6XTK6XS6lQUHB+d1s1SyZMlCM8A5dbv1mf4Wfrdbn2+3/kq3X58LW3+vd8QjQ55fcFqsWDHVqVNHa9ascZWlp6drzZo1atCgQV6vDgAAFDD5ctpl2LBh6tWrl+rWrav69etrypQpOnfunPr06ZMfqwMAAAVIvoSPLl266JdfftGoUaOUlJSk2rVra/ny5R4XodrgdDo1evRoj1M7hdnt1mf6W/jdbn2+3for3X59vt36m5nD5GRODAAAQB7ht10AAIBVhA8AAGAV4QMAAFhF+AAAAFYRPgAAgFUFMnwkJiYqKipKfn5+iomJ0VdffXXN+gsXLlS1atXk5+ene++9V59++qnb48YYjRo1SuXLl5e/v79atmypvXv35mcXvOJNf//973+rcePGKlWqlEqVKqWWLVt61O/du7ccDofbrVWrVvndDa940+eZM2d69MfPz8+tTmEa49jYWI/+OhwOtWnTxlXnVh7jjRs3qm3btgoPD5fD4dCSJUuu+5z169fr/vvvl9PpVOXKlTVz5kyPOt6+L9jibX8//PBDPfjggypbtqxKliypBg0aaMWKFW51xowZ4zG+1apVy8deeMfbPq9fvz7L13RSUpJbvcIyxlntnw6HQzVq1HDVudXH+EYVuPAxf/58DRs2TKNHj9a2bdtUq1YtxcXF6fjx41nW/+KLL9StWzf17dtX33zzjTp06KAOHTrou+++c9WZOHGi3njjDb399tv68ssvVaJECcXFxenChQu2upUtb/u7fv16devWTevWrdOmTZsUERGhhx56SEePHnWr16pVK/3888+u29y5c210J0e87bP0+1cUX92fQ4cOuT1emMb4ww8/dOvrd999J19fX3Xq1Mmt3q06xufOnVOtWrWUmJiYo/oHDhxQmzZt1KxZM23fvl1DhgxRv3793D6Qc/OascXb/m7cuFEPPvigPv30U23dulXNmjVT27Zt9c0337jVq1Gjhtv4fvbZ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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAi8AAAGzCAYAAADnmPfhAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA+j0lEQVR4nO3de3zOdePH8ffO0w7XDNssp+UQyzEyyzHU0iI3cmhppNy3exSTOypyykRF5JDubtxFSaWixBzSXeYQ6ZZzRUjbCLtQttk+vz/67bpdNnLN1uXL6/l4fB/s8/18P9/P93ud3tfne7g8jDFGAAAAFuHp7g4AAAC4gvACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfBylapWrZr69Onj7m5c8yZPnqybbrpJXl5eatiwobu7I8m9j32bNm3Upk0bt6z7cnz66adq2LCh/P395eHhoZMnT7q7S05Gjx4tDw+PEmvvs88+k4eHhz777LMSa9PKSnr/wroIL3+CefPmycPDQ1999VWR89u0aaO6dete8Xo++eQTjR49+orbuV6sXLlS//jHP9S8eXPNnTtXEyZMuKzlunfvLg8PDz355JPFXvf69es1evRot3z47ty5U6NHj9aBAwf+9HVfiV9++UXdu3dXmTJlNGPGDL3xxhsKCAgotfUVvG4LJn9/f0VGRiouLk7Tpk3TqVOnSmxdM2fO1Lx580qsPaupVq2a074+f7r77rvd3b1Ss3DhQk2dOtWlZXJycjRhwgTVrl1b/v7+Cg8PV3x8vA4fPlw6nbxKebu7Ayjanj175OnpWrb85JNPNGPGDALMZVqzZo08PT31+uuvy9fX97KWsdvtWrp0qapVq6a33npLEydOLNY3wfXr12vMmDHq06ePQkJCnOYV57F3xc6dOzVmzBi1adNG1apVc5q3cuXKUlvvldq8ebNOnTqlcePGqX379n/aeseOHauoqCjl5uYqPT1dn332mQYPHqyXXnpJH330kerXr++o+8wzz2j48OEur2PmzJkqX758oRG3Vq1a6bfffrvs56eVNWzYUEOHDi1UHhkZ6Ybe/DkWLlyob7/9VoMHD76s+rm5uYqPj9f69ev16KOPqn79+jpx4oQ2btyorKwsVapUqXQ7fBUhvFyl/Pz83N0Fl505c6ZUvwmXtMzMTJUpU8alD4b33ntPeXl5+te//qW2bdvq888/V+vWrUu0X+587K/mD8nMzExJKhT2rsTlPGc7dOigJk2aOP4eMWKE1qxZo3vvvVedOnXSrl27VKZMGUmSt7e3vL1L7m3V09NT/v7+JdZeScvPz1dOTk6J9PHGG2/Ugw8+WAK9unZNmTJF69at0xdffKGmTZu6uzvuZVDq5s6daySZzZs3Fzm/devW5pZbbnEqq1q1qklMTHT8nZOTY0aPHm1q1Khh/Pz8TGhoqGnevLlZuXKlMcaYxMREI6nQVOD06dMmOTnZVKpUyfj6+ppatWqZyZMnm/z8fKf1/vrrr2bQoEGmXLlyJjAw0HTs2NEcPnzYSDLPPvuso96zzz5rJJkdO3aYXr16mZCQENOwYUNjjDHffPONSUxMNFFRUcbPz8+Eh4ebvn37mmPHjjmtq6CNPXv2mISEBBMcHGzKly9vnnnmGZOfn28OHjxoOnXqZIKCgkx4eLh54YUXLmt/5+bmmrFjx5qbbrrJ+Pr6mqpVq5oRI0aYs2fPOuoUta/mzp37h223a9fO3HPPPcYYY+rUqWMeffTRIuvt2rXL3H///aZ8+fLG39/f1KpVyzz11FNO233htH//fmOM82O/efNmI8nMmzev0Do+/fRTI8ksXbrUGGPMgQMHzIABA0ytWrWMv7+/CQ0NNd26dXO0a8z/nosXTmvXrjXG/P5cbN26tdN6MjIyzMMPP2zCwsKMn5+fqV+/fqH+7N+/30gykydPNq+++qpj3zdp0sRs2rTJqe7PP/9s+vTpY2688Ubj6+trIiIiTKdOnZz6eaHWrVsX6vP5r4933nnH3Hrrrcbf39+UK1fOJCQkmMOHDzu1kZiYaAICAsx3331nOnToYAIDA81999130XX+0et2woQJRpKZM2eOo6zgsb3QG2+8YW677TZTpkwZExISYlq2bGlWrFhhjPn98b5w2woeg7Vr1zo9PsXZ3sOHD5v77rvPBAQEmPLly5uhQ4eac+fOOdWdPHmyiY2NNaGhocbf39/ceuutZvHixYW2Q5JJSkoyb775pomOjjbe3t7m/fffN1WrVjWdOnUqVP+3334zwcHBpn///kXuwwJVq1Y18fHxl6xjzKX3b8H+KFu2rOnRo4c5ePCgU52C99lvvvnGtGrVypQpU8ZUr17dsZ2fffaZadq0qeP1mpqaWmg9hw8fNn379jVhYWHG19fXREdHm9dff92pTsFjtmjRIjN+/Hhz4403Gj8/P9O2bVuzb98+p/5c+LhXrVr1otuel5dnIiMjTffu3Y0xv7/PnTlz5g/32bWKkZc/UVZWlo4dO1aoPDc39w+XHT16tFJSUvTII4+oadOmstvt+uqrr7R161bdeeed+utf/6ojR44oNTVVb7zxhtOyxhh16tRJa9euVb9+/dSwYUOtWLFCw4YN008//aQpU6Y46vbp00fvvPOOevfurWbNmmndunWKj4+/aL/uv/9+1axZUxMmTJAxRpKUmpqqH374QX379lVERIR27NihOXPmaMeOHdqwYUOhwyw9evRQnTp1NHHiRH388ccaP368QkND9eqrr6pt27Z6/vnntWDBAj3xxBO67bbb1KpVq0vuq0ceeUTz589Xt27dNHToUG3cuFEpKSnatWuXlixZIkl64403NGfOHG3atEn//Oc/JUm33377Jds9cuSI1q5dq/nz50uSevXqpSlTpuiVV15xGrH473//q5YtW8rHx0f9+/dXtWrV9P3332vp0qV67rnn1KVLF+3du1dvvfWWpkyZovLly0uSKlSoUGidTZo00U033aR33nlHiYmJTvMWLVqksmXLKi4uTtLvh1XWr1+vnj17qlKlSjpw4IBmzZqlNm3aaOfOnbrhhhvUqlUrPfbYY5o2bZqeeuop1alTR5Ic/17ot99+U5s2bfTdd99p4MCBioqK0uLFi9WnTx+dPHlSjz/+uFP9hQsX6tSpU/rrX/8qDw8PTZo0SV26dNEPP/wgHx8fSVLXrl21Y8cODRo0SNWqVVNmZqZSU1N18ODBQoexCjz99NO6+eabNWfOHMdhnOrVq0v6/dyUvn376rbbblNKSooyMjL08ssv68svv9TXX3/tNFJz7tw5xcXFqUWLFnrhhRd0ww03FLm+y9G7d2899dRTWrlypR599NGL1hszZoxGjx6t22+/XWPHjpWvr682btyoNWvW6K677tLUqVM1aNAgBQYG6umnn5YkhYeHX7Q9V7Y3Ly9PcXFxiomJ0QsvvKBVq1bpxRdfVPXq1TVgwABHvZdfflmdOnVSQkKCcnJy9Pbbb+v+++/XsmXLCr3+16xZo3feeUcDBw5U+fLlFRUVpQcffFCTJk3S8ePHFRoa6qi7dOlS2e32yxpRyc3N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6q4X1YZ/XCrtHpgYXyrtAgBwPWHkBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWArhBQAAWIpL4WX06NHy8PBwmmrXru2Yf/bsWSUlJalcuXIKDAxU165dlZGR4dTGwYMHFR8frxtuuEFhYWEaNmyYzp07VzJbAwAArnneri5wyy23aNWqVf9rwPt/TQwZMkQff/yxFi9eLJvNpoEDB6pLly768ssvJUl5eXmKj49XRESE1q9fr59//lkPPfSQfHx8NGHChBLYHAAAcK1zObx4e3srIiKiUHlWVpZef/11LVy4UG3btpUkzZ07V3Xq1NGGDRvUrFkzrVy5Ujt37tSqVasUHh6uhg0baty4cXryySc1evRo+fr6XvkWAQCAa5rL57zs27dPkZGRuummm5SQkKCDBw9KkrZs2aLc3Fy1b9/eUbd27dqqUqWK0tLSJElpaWmqV6+ewsPDHXXi4uJkt9u1Y8eOi64zOztbdrvdaQIAANcnl8JLTEyM5s2bp08//VSzZs3S/v371bJlS506dUrp6eny9fVVSEiI0zLh4eFKT0+XJKWnpzsFl4L5BfMuJiUlRTabzTFVrlzZlW4DAIBriEuHjTp06OD4f/369RUTE6OqVavqnXfeUZkyZUq8cwVGjBih5ORkx992u50AAwDAdeqKLpUOCQlRrVq19N133ykiIkI5OTk6efKkU52MjAzHOTIRERGFrj4q+Luo82gK+Pn5KTg42GkCAADXpysKL6dPn9b333+vihUrqnHjxvLx8dHq1asd8/fs2aODBw8qNjZWkhQbG6vt27crMzPTUSc1NVXBwcGKjo6+kq4AAIDrhEuHjZ544gl17NhRVatW1ZEjR/Tss8/Ky8tLvXr1ks1mU79+/ZScnKzQ0FAFBwdr0KBBio2NVbNmzSRJd911l6Kjo9W7d29NmjRJ6enpeuaZZ5SUlCQ/P79S2UAAAHBtcSm8HD58WL169dIvv/yiChUqqEWLFtqwYYMqVKggSZoyZYo8PT3VtWtXZWdnKy4uTjNnznQs7+XlpWXLlmnAgAGKjY1VQECAEhMTNXbs2JLdKgAAcM3yMMYYd3fCVXa7XTabTVlZWaVy/ku14R+XeJuSdGBifKm0CwCAFZTU5ze/bQQAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACyF8AIAACzlisLLxIkT5eHhocGDBzvKzp49q6SkJJUrV06BgYHq2rWrMjIynJY7ePCg4uPjdcMNNygsLEzDhg3TuXPnrqQrAADgOlHs8LJ582a9+uqrql+/vlP5kCFDtHTpUi1evFjr1q3TkSNH1KVLF8f8vLw8xcfHKycnR+vXr9f8+fM1b948jRo1qvhbAQAArhvFCi+nT59WQkKCXnvtNZUtW9ZRnpWVpddff10vvfSS2rZtq8aNG2vu3Llav369NmzYIElauXKldu7cqTfffFMNGzZUhw4dNG7cOM2YMUM5OTkls1UAAOCaVazwkpSUpPj4eLVv396pfMuWLcrNzXUqr127tqpUqaK0tDRJUlpamurVq6fw8HBHnbi4ONntdu3YsaPI9WVnZ8tutztNAADg+uTt6gJvv/22tm7dqs2bNxeal56eLl9fX4WEhDiVh4eHKz093VHn/OBSML9gXlFSUlI0ZswYV7sKAACuQS6NvBw6dEiPP/64FixYIH9//9LqUyEjRoxQVlaWYzp06NCftm4AAHB1cSm8bNmyRZmZmbr11lvl7e0tb29vrVu3TtOmTZO3t7fCw8OVk5OjkydPOi2XkZGhiIgISVJEREShq48K/i6ocyE/Pz8FBwc7TQAA4PrkUnhp166dtm/frm3btjmmJk2aKCEhwfF/Hx8frV692rHMnj17dPDgQcXGxkqSYmNjtX37dmVmZjrqpKamKjg4WNHR0SW0WQAA4Frl0jkvQUFBqlu3rlNZQECAypUr5yjv16+fkpOTFRoaquDgYA0aNEixsbFq1qyZJOmuu+5SdHS0evfurUmTJik9PV3PPPOMkpKS5OfnV0KbBQAArlUun7D7R6ZMmSJPT0917dpV2dnZiouL08yZMx3zvby8tGzZMg0YMECxsbEKCAhQYmKixo4dW9JdAQAA1yAPY4xxdydcZbfbZbPZlJWVVSrnv1Qb/nGJtylJBybGl0q7AABYQUl9fvPbRgAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFIILwAAwFJcCi+zZs1S/fr1FRwcrODgYMXGxmr58uWO+WfPnlVSUpLKlSunwMBAde3aVRkZGU5tHDx4UPHx8brhhhsUFhamYcOG6dy5cyWzNQAA4JrnUnipVKmSJk6cqC1btuirr75S27Ztdd9992nHjh2SpCFDhmjp0qVavHix1q1bpyNHjqhLly6O5fPy8hQfH6+cnBytX79e8+fP17x58zRq1KiS3SoAAHDN8jDGmCtpIDQ0VJMnT1a3bt1UoUIFLVy4UN26dZMk7d69W3Xq1FFaWpqaNWum5cuX695779WRI0cUHh4uSZo9e7aefPJJHT16VL6+vpe1TrvdLpvNpqysLAUHB19J94tUbfjHJd6mJB2YGF8q7QIAYAUl9fld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TIwvtbYBALiaMPICAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAshfACAAAsxeXw8vnnn6tjx46KjIyUh4eHPvjgA6f5xhiNGjVKFStWVJkyZdS+fXvt27fPqc7x48eVkJCg4OBghYSEqF+/fjp9+vQVbQgAALg+uBxezpw5owYNGmjGjBlFzp80aZKmTZum2bNna+PGjQoICFBcXJzOnj3rqJOQkKAdO3YoNTVVy5Yt0+eff67+/fsXfysAAMB1w9vVBTp06KAOHToUOc8Yo6lTp+qZZ57RfffdJ0n697//rfDwcH3wwQfq2bOndu3apU8//VSbN29WkyZNJEnTp0/XPffcoxdeeEGRkZGF2s3OzlZ2drbjb7vd7mq3AQDANaJEz3nZv3+/0tPT1b59e0eZzWZTTEyM0tLSJElpaWkKCQlxBBdJat++vTw9PbVx48Yi201JSZHNZnNMlStXLsluAwAACynR8JKeni5JCg8PdyoPDw93zEtPT1dYWJjTfG9vb4WGhjrqXGjEiBHKyspyTIcOHSrJbgMAAAtx+bCRO/j5+cnPz8/d3QAAAFeBEh15iYiIkCRlZGQ4lWdkZDjmRUREKDMz02n+uXPndPz4cUcdAACAiynR8BIVFaWIiAitXr3aUWa327Vx40bFxsZKkmJjY3Xy5Elt2bLFUWfNmjXKz89XTExMSXYHAABcg1w+bHT69Gl99913jr/379+vbdu2KTQ0VFWqVNHgwYM1fvx41axZU1FRURo5cqQiIyPVuXNnSVKdOnV0991369FHH9Xs2bOVm5urgQMHqmfPnkVeaQQAAHA+l8PLV199pTvuuMPxd3JysiQpMTFR8+bN0z/+8Q+dOXNG/fv318mTJ9WiRQt9+umn8vf3dyyzYMECDRw4UO3atZOnp6e6du2qadOmlcDmAACAa52HMca4uxOustvtstlsysrKUnBwcIm3X234xyXeZmk7MDHe3V0AAOCSSurzm982AgAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAAlkJ4AQAA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Sn5+vpo0aaIJEyZIkho1aqRvv/1Ws2fPJrz8gXfeeUcLFizQwoULdcstt2jbtm0aPHiwIiMj2Xf40+Xm5qp79+4yxmjWrFkuLcthI0nly5eXl5eXMjIynMozMjIUERHhpl5Zy8CBA7Vs2TKtXbtWlSpVcnd3rnpbtmxRZmambr31Vnl7e8vb21vr1q3TtGnT5O3trby8PHd38apVsWJFRUdHO5XVqVNHBw8edFOPrGPYsGEaPny4evbsqXr16ql3794aMmSIUlJS3N01Syn4XOAzo/gKgsuPP/6o1NRUl0ZdJMKLJMnX11eNGzfW6tWrHWX5+flavXq1YmNj3dizq58xRgMHDtSSJUu0Zs0aRUVFubtLltCuXTtt375d27Ztc0xNmjRRQkKCtm3bJi8vL3d38arVvHnzQpfj7927V1WrVnVTj6zj119/laen89u+l5eX8vPz3dQja4qKilJERITTZ4bdbtfGjRv5zLgMBcFl3759WrVqlcqVK+dyGxw2+n/JyclKTExUkyZN1LRpU02dOlVnzpxR37593d21q1pSUpIWLlyoDz/8UEFBQY7jvTabTWXKlHFz765eQUFBhc4LCggIULly5Thf6A8MGTJEt99+uyZMmKDu3btr06ZNmjNnjubMmePurl31OnbsqOeee05VqlTRLbfcoq+//lovvfSSHn74YXd37apz+vRpfffdd46/9+/fr23btik0NFRVqlTR4MGDNX78eNWsWVNRUVEaOXKkIiMj1blzZ/d1+ipxqX1XsWJFdevWTVu3btWyZcuUl5fn+NwIDQ2Vr6/v5a3kiq6BusZMnz7dVKlSxfj6+pqmTZuaDRs2uLtLVz1JRU5z5851d9csh0ulL9/SpUtN3bp1jZ+fn6ldu7aZM2eOu7tkCXa73Tz++OOmSpUqxt/f39x0003m6aefNtnZ2e7u2lVn7dq1Rb63JSYmGmN+v1x65MiRJjw83Pj5+Zl27dqZPXv2uLfTV4lL7bv9+/df9HNj7dq1l70OD2O4tSIAALAOznkBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACWQngBAACW8n9VKvZOCw5t9AAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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m3feecelTu42mz9/vpk4caK5+eabjd1uNx07djQHDhxw6U/e7V6zZs1rroMrnTx50nh5eZkhQ4a49bqygpGPEpKWlqYzZ87kK8/Kyrrma8eOHaukpCQ9/PDDat26tdLT07VlyxZt27ZN99xzj/74xz/q5MmTWrlyZb6hOWOMevToobVr12ro0KFq3ry5li9frieffFL/+c9/NHXqVGfdIUOGaMGCBRo0aJDatm2r9evXq1u3boX264EHHlC9evX017/+VcYYSdLKlSv1/fffKz4+XuHh4dqzZ49mzpypPXv2aNOmTfkOU/Tr10+NGjXSpEmT9Nlnn2nixIkKDg7W22+/rY4dO+rll1/W3Llz9cQTT6hVq1aKiYm56rp6+OGH9d5776lPnz4aM2aMNm/erKSkJO3bt0+LFy+WJL3//vuaOXOmvv76a/3jH/+QJN1xxx1XbffkyZNau3at3nvvPUnSgAEDNHXqVP397393GTHYuXOn2rVrJx8fHw0bNky1atXSoUOH9Mknn+ill17S/fffr++++04ffPCBpk6dqpCQEEm/Dqvm1bJlS9WuXVsLFizQ4MGDXZ6bP3++brrpJsXFxUn69bDEV199pf79+6t69eo6cuSIZsyYodjYWO3du1eVKlVSTEyMHn/8cb3++ut65pln1KhRI0ly/pvXzz//rNjYWB08eFDDhw9XVFSUFi5cqCFDhuj8+fP685//7FI/OTlZFy5c0B//+EfZbDZNnjxZ999/v77//nv5+PhIknr37q09e/ZoxIgRqlWrlk6fPq2VK1fq2LFj+Q4D5Xr22WfVoEEDzZw503kYpE6dOpJ+/eUXHx+vVq1aKSkpSampqXrttdf05Zdfavv27S4jJb/88ovi4uJ011136ZVXXlGlSpUKnF9RDBo0SM8884xWrFhx1ePt48aN09ixY3XHHXdo/Pjx8vX11ebNm7VmzRrde++9mjZtmkaMGCF/f389++yzkqSwsLBC23NnebOzsxUXF6c2bdrolVde0apVq/S3v/1NderU0WOPPeas99prr6lHjx4aOHCgLl++rHnz5umBBx7Qp59+mu/9v2bNGi1YsEDDhw9XSEiIoqKi9Pvf/16TJ0/Wjz/+qODgYGfdTz75ROnp6UUa0cjKyirw87Fy5crOkaWCvPTSS3r++efVt29fPfzww/rhhx/0xhtvKCYmJt/6OHfunO677z71799fDzzwgGbMmKH+/ftr7ty5GjlypB599FE9+OCDmjJlivr06aPjx48rICBAkpSamqq2bdvKZrNp+PDhqlq1qpYuXaqhQ4cqPT0936GTSZMmycvLS0888YTS0tI0efJkDRw4UJs3b5b06z6dlpamEydOOD+D/f39r7merjRv3jzl5ORo4MCBbr2uzCjt9FPWFfZr88rpWiMfzZo1u+Yvg4SEhAJ/FSxZssRIMhMnTnQp79Onj7HZbObgwYPGGGO2bt1qJJmRI0e61BsyZEihIx8DBgzIN7+ffvopX9kHH3xgJJkNGzbka+PKX0W//PKLqV69urHZbGbSpEnO8nPnzpmKFSu6rJOC7Nixw0gyDz/8sEv5E088YSSZNWvWOMtyfxkW1SuvvGIqVqxo0tPTjTHGfPfdd0aSWbx4sUu9mJgYExAQYI4ePepSfuUo05QpU1xGO66Ud9snJiYaHx8f8+OPPzrLMjMzTVBQkPnDH/7gLCtovW/cuNFIMv/85z+dZQsXLizw17Qx+Uc+pk2bZiSZOXPmOMsuX75soqOjjb+/v3Nd5I58VKlSxaWfH3/8scvozLlz55wjJO4qaCTi8uXLJjQ01DRp0sT8/PPPzvJPP/3USDIvvPCCsyx3dPDpp58u9vzycjgc5rbbbnM+zvvL/MCBA8bLy8v87ne/M9nZ2S6vvXJ/uOWWW/KNOBmTf+SjOMs7fvx4lzZvu+0206JFC5eyvPvO5cuXTZMmTUzHjh1dyiUZLy8vs2fPHpfy/fv3G0lmxowZLuU9evQwtWrVyjfCmldBoz+5U1JSkrNe3vV75MgR4+3tbV566SWX9nbt2mUqVKjgUp470pCcnOws+/bbb53LtGnTJmf58uXL842GDh061FSrVi3fCG7//v2Nw+FwrsPcbdaoUSOTmZnprPfaa68ZSWbXrl3Osm7durk92nGlFi1amGrVquXbt8oLrnYpIdOnT9fKlSvzTVeesFaYoKAg7dmzRwcOHHB7vp9//rm8vb31+OOPu5SPGTNGxhgtXbpU0q8nLknSn/70J5d6I0aMKLTtRx99NF/Zlb9SLl26pDNnzqht27aSpG3btuWr//DDDzv/7+3trZYtW8oYo6FDhzrLg4KC1KBBA33//feF9kX6dVklafTo0S7luSeyffbZZ1d9/dXMnTtX3bp1c/4Sqlevnlq0aKG5c+c66/zwww/asGGD/vCHP6hGjRoury/uJYL9+vVTVlaWPvroI2fZihUrdP78efXr189ZduV6z8rK0tmzZ1W3bl0FBQUVuN6L4vPPP1d4eLgGDBjgLPPx8dHjjz+uixcvav369fn6etNNNzkft2vXTpKc2y33HJt169bp3LlzxerTlbZs2aLTp0/rT3/6k8t5B926dVPDhg0L3N5X/uK/Xv7+/le96mXJkiXKycnRCy+8kO8k4uLsD8VZ3rzv0Xbt2uV7H12575w7d05paWlq165dgftN+/bt1bhxY5ey+vXrq02bNi7vhR9//FFLly7VwIEDi7Ssbdq0KfDz8cp9L6+PPvpIOTk56tu3r86cOeOcwsPDVa9ePa1du9alvr+/v/r37+983KBBAwUFBalRo0Zq06aNS1+k/+63xhgtWrRI3bt3lzHGZV5xcXFKS0vLt67i4+NdRkTzvheu13fffaetW7eqf//+Hj1BvTRx2KWEtG7d2uXEtVw33XRTgcONVxo/frx69uyp+vXrq0mTJurcubMGDRpUpOBy9OhRRUREOL80c+UOtR89etT5r5eXl6Kiolzq1a1bt9C289aVfv3QGTdunObNm+c8STBXWlpavvp5v6QdDof8/PychyOuLD979myhfblyGfL2OTw8XEFBQc5ldde+ffu0fft2PfTQQzp48KCzPDY2VtOnT1d6eroCAwOdHywlcel0rmbNmqlhw4aaP3++M5DNnz9fISEh6tixo7Pezz//rKSkJM2aNUv/+c9/nIfBpILXe1EcPXpU9erVy/fhlnffyZV3W+YGkdygYbfb9fLLL2vMmDEKCwtT27Ztdd999+mhhx5SeHh4sfon/folklfDhg31xRdfuJRVqFBB1atXd3s+hbl48aJCQ0MLff7QoUPy8vLK92VdXO4ur5+fX77DeTfddFO+4Pfpp59q4sSJ2rFjhzIzM53lBYWGgt7zkvTQQw9p+PDhOnr0qGrWrKmFCxcqKytLgwYNKtKyhYSEuH0V04EDB2SMUb169Qp8PvdQX67q1avnWyaHw6HIyMh8ZdJ/99sffvhB58+f18yZMzVz5swC55X3s+5a74XrlRv0yu0hFxE+bggxMTE6dOiQPv74Y61YsUL/+Mc/NHXqVL311lsuIwdWK+hYbN++ffXVV1/pySefVPPmzeXv76+cnBx17txZOTk5+ep7e3sXqUySyxfq1ZT0jYjmzJkjSRo1apRGjRqV7/lFixYpPj6+ROd5pX79+umll17SmTNnFBAQoH/9618aMGCAy5UVI0aM0KxZszRy5EhFR0fL4XDIZrOpf//+Ba53TyjKdhs5cqS6d++uJUuWaPny5Xr++eeVlJSkNWvW6LbbbvNo/+x2e4n9Sjxx4oTS0tKuGs5LW2Hb40r/+7//qx49eigmJkZvvvmmqlWrJh8fH82aNUvJycn56hd2/kX//v01atQozZ07V88884zmzJmjli1bFhiUSkpOTo5sNpuWLl1a4LLmPYeisPVxrf029/3z+9//Pt+5V7ny/hC83s+wa0lOTlaDBg3UokWLEmnvRkT4uEEEBwcrPj5e8fHxunjxomJiYjR27Fhn+CjsC7dmzZpatWqVLly44DL68e233zqfz/03JydHhw8fdvklceUv/Ws5d+6cVq9erXHjxumFF15wlhfncFFx5C7DgQMHXE6iTE1N1fnz553L6g5jjJKTk9WhQ4d8h6QkacKECZo7d67i4+NVu3ZtSdLu3buv2qa74ahfv34aN26cFi1apLCwMKWnp7sMH0vShx9+qMGDB+tvf/ubs+zSpUv5bmTmzrxr1qypnTt3Kicnx+VLO+++4646depozJgxGjNmjA4cOKDmzZvrb3/7mzPkudM/6dd7o1w5CpRbVtz+FUXuid25J/wWpE6dOsrJydHevXuvegfdom4TTyzvokWL5Ofnp+XLl7tc5j1r1iy32gkODla3bt00d+5cDRw4UF9++WWRb6BVXHXq1JExRlFRUapfv77H5lO1alUFBAQoOzu7RO8xU9wfSZs3b9bBgwc1fvz4EuvLjah8HkwqY/IebvD391fdunVdhkhz71eQ98uma9euys7O1t///neX8qlTp8pms6lLly6S/vsh+uabb7rUe+ONN4rcz9y0nzfde/pDKFfXrl0LnN+rr74qSVe9cqcwX375pY4cOaL4+Hj16dMn39SvXz+tXbtWJ0+eVNWqVRUTE6N3331Xx44dc2nnynVS2LYqTKNGjXTrrbdq/vz5mj9/vqpVq5bvqh9vb+986/2NN95Qdna2S5k78+7atatSUlI0f/58Z9kvv/yiN954Q/7+/m7f4+Snn37SpUuXXMrq1KmjgIAAl325qFq2bKnQ0FC99dZbLq9funSp9u3bV6ztXRRr1qzRhAkTFBUVddVh7169esnLy0vjx4/PN/qUd38oyvbwxPJ6e3vLZrO57CdHjhzRkiVL3G5r0KBB2rt3r5588kl5e3vnC8gl7f7775e3t7fGjRuXb983xlzzMG1ReXt7q3fv3lq0aFGBPyx++OGHYrVbuXLlYh0SzR2RevDBB4s137KCkY8bQOPGjRUbG6sWLVooODhYW7Zs0Ycffqjhw4c76+QOvz3++OOKi4tzvvm7d++uDh066Nlnn9WRI0fUrFkzrVixQh9//LFGjhzpvGSxRYsW6t27t6ZNm6azZ886L7X97rvvJBUtpQcGBiomJkaTJ09WVlaWbr75Zq1YsUKHDx/2wFrJr1mzZho8eLBmzpyp8+fPq3379vr666/13nvvqVevXurQoYPbbc6dO1fe3t6FfrD36NFDzz77rObNm6fRo0fr9ddf11133aXbb79dw4YNU1RUlI4cOaLPPvtMO3bskPTfbfXss8+qf//+8vHxUffu3a96w6t+/frphRdekJ+fn4YOHZrv8MF9992n999/Xw6HQ40bN9bGjRu1atUqValSxaVe8+bN5e3trZdffllpaWmy2+3q2LFjgecuDBs2TG+//baGDBmirVu3qlatWvrwww+dv2rznkd0Ld99953uvvtu9e3bV40bN1aFChW0ePFipaamFuuLysfHRy+//LLi4+PVvn17DRgwwHnpaa1atQo8ROaupUuX6ttvv9Uvv/yi1NRUrVmzRitXrlTNmjX1r3/966o32Kpbt66effZZTZgwQe3atdP9998vu92ub775RhEREUpKSpL06/4wY8YMTZw4UXXr1lVoaGi+kQ1PLW+3bt306quvqnPnznrwwQd1+vRpTZ8+XXXr1tXOnTvdbqtKlSpauHChunTpctXzYfL6z3/+U+DIl7+/v3r16lXga+rUqaOJEycqMTFRR44cUa9evRQQEKDDhw9r8eLFGjZsmJ544gm3lqEwkyZN0tq1a9WmTRs98sgjaty4sX788Udt27ZNq1at0o8//uh2my1atND8+fM1evRotWrVSv7+/te8WVh2drbmz5+vtm3bOj+7yy2rL68pb0riJmMTJ040rVu3NkFBQaZixYqmYcOG5qWXXjKXL1921vnll1/MiBEjTNWqVY3NZnO5JO3ChQtm1KhRJiIiwvj4+Jh69eoVeJOxjIwMk5CQYIKDg42/v7/p1auX8zK6Ky99zb3k7Ycffsi3PCdOnDC/+93vTFBQkHE4HOaBBx4wJ0+eLPRy3bxtFHYJbEHrqSBZWVlm3LhxJioqyvj4+JjIyMh8Nxm72nyudPnyZVOlShXTrl27q9aLiopyueRy9+7dznXg5+dnGjRoYJ5//nmX10yYMMHcfPPNxsvLq9CbjF3pwIEDzssPv/jii3zPnzt3zsTHx5uQkBDj7+9v4uLizLfffltge//zP/9jateubby9vYt0k7Hcdn19fc2tt96a74ZsV95kLK8rt/uZM2dMQkKCadiwoalcubJxOBymTZs2ZsGCBflXah5Xex/Nnz/f3Hbbbc4b8F3tpltFlfcS+dwbot1zzz3mtddec15mfKXCboL17rvvOvt30003mfbt27vcxColJcV069bNBAQEFOkmY9ezvAX18Z133jH16tUzdrvdNGzY0MyaNavAevr/m4xdzZ/+9Kd8l7Rey9Uutb3yUtTC1u+iRYvMXXfdZSpXrmwqV65sGjZsaBISEsz+/fuddQr7/CjsBmcFLWtqaqpJSEgwkZGRxsfHx4SHh5u7777b5UZzudss703act8jV753Ll68aB588EETFBRU5JuM5d5c8PXXX79m3bLOZkwJnSGDMmnHjh267bbbNGfOnHJ9ZjWA6zdq1Ci98847SklJua6buAGc8/Eb8vPPP+crmzZtmry8vK55Z1EAv22XLl3SnDlz1Lt3b4IHrhvnfPyGTJ48WVu3blWHDh1UoUIFLV26VEuXLtWwYcPyXQsPANKv97hYtWqVPvzwQ509ezbfbfeB4iB8/IbccccdWrlypSZMmKCLFy+qRo0aGjt2rPNvTgBAXnv37tXAgQMVGhqq119//aqXFQNFxTkfAADAUpzzAQAALEX4AAAAlrrhzvnIycnRyZMnFRAQUOJ/wwMAAHiGMUYXLlxQRETENf/O0g0XPk6ePMmVFwAAlFHHjx+/5l+YvuHCR+4tnY8fP67AwMBS7g0AACiK9PR0RUZGFulPM9xw4SP3UEtgYCDhAwCAMqYop0xwwikAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApSqUdgfKi1pPf+axto9M6uaxtgEAsBojHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWcit8zJgxQ02bNlVgYKACAwMVHR2tpUuXOp+PjY2VzWZzmR599NES7zQAACi7KrhTuXr16po0aZLq1asnY4zee+899ezZU9u3b9ctt9wiSXrkkUc0fvx452sqVapUsj0GAABlmlvho3v37i6PX3rpJc2YMUObNm1yho9KlSopPDy85HoIAADKlWKf85Gdna158+YpIyND0dHRzvK5c+cqJCRETZo0UWJion766aertpOZman09HSXCQAAlF9ujXxI0q5duxQdHa1Lly7J399fixcvVuPGjSVJDz74oGrWrKmIiAjt3LlTf/nLX7R//3599NFHhbaXlJSkcePGFX8JAABAmWIzxhh3XnD58mUdO3ZMaWlp+vDDD/WPf/xD69evdwaQK61Zs0Z33323Dh48qDp16hTYXmZmpjIzM52P09PTFRkZqbS0NAUGBrq5OKWn1tOfeaztI5O6eaxtAABKQnp6uhwOR5G+v90e+fD19VXdunUlSS1atNA333yj1157TW+//Xa+um3atJGkq4YPu90uu93ubjcAAEAZdd33+cjJyXEZubjSjh07JEnVqlW73tkAAIBywq2Rj8TERHXp0kU1atTQhQsXlJycrHXr1mn58uU6dOiQkpOT1bVrV1WpUkU7d+7UqFGjFBMTo6ZNm3qq/wAAoIxxK3ycPn1aDz30kE6dOiWHw6GmTZtq+fLluueee3T8+HGtWrVK06ZNU0ZGhiIjI9W7d28999xznuo7AAAog9wKH++8806hz0VGRmr9+vXX3SEAAFC+8bddAACApQgfAADAUoQPAABgKbfv81HWefJmYAAA4NoY+QAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4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nHUaNmyoGjVqaOPGjQW2kZmZqfT0dJcJAACUX8UOHzk5ORo5cqTuvPNONWnSRJKUkpIiX19fBQUFudQNCwtTSkpKge0kJSXJ4XA4p8jIyOJ2CQAAlAHFDh8JCQnavXu35s2bd10dSExMVFpamnM6fvz4dbUHAABubG6d85Fr+PDh+vTTT7VhwwZVr17dWR4eHq7Lly/r/PnzLqMfqampCg8PL7Atu90uu91enG4AAIAyyK2RD2OMhg8frsWLF2vNmjWKiopyeb5Fixby8fHR6tWrnWX79+/XsWPHFB0dXTI9BgAAZZpbIx8JCQlKTk7Wxx9/rICAAOd5HA6HQxUrVpTD4dDQoUM1evRoBQcHKzAwUCNGjFB0dDRXugAAAEluho8ZM2ZIkmJjY13KZ82apSFDhkiSpk6dKi8vL/Xu3VuZmZmKi4vTm2++WSKdBQAAZZ9b4cMYc806fn5+mj59uqZPn17sTgEAgPKLv+0CAAAsRfgAAACWInwAAABLFes+H7BWrac/81jbRyZ181jbAAAUhJEPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApt8PHhg0b1L17d0VERMhms2nJkiUuzw8ZMkQ2m81l6ty5c0n1FwAAlHFuh4+MjAw1a9ZM06dPL7RO586dderUKef0wQcfXFcnAQBA+VHB3Rd06dJFXbp0uWodu92u8PDwYncKAACUXx4552PdunUKDQ1VgwYN9Nhjj+ns2bOF1s3MzFR6errLBAAAyq8SDx+dO3fWP//5T61evVovv/yy1q9fry5duig7O7vA+klJSXI4HM4pMjKypLsEAABuIG4fdrmW/v37O/9/6623qmnTpqpTp47WrVunu+++O1/9xMREjR492vk4PT2dAAIAQDnm8Utta9eurZCQEB08eLDA5+12uwIDA10mAABQfnk8fJw4cUJnz55VtWrVPD0rAABQBrh92OXixYsuoxiHDx/Wjh07FBwcrODgYI0bN069e/dWeHi4Dh06pKeeekp169ZVXFxciXYcAACUTW6Hjy1btqhDhw7Ox7nnawwePFgzZszQzp079d577+n8+fOKiIjQvffeqwkTJshut5dcrwEAQJnldviIjY2VMabQ55cvX35dHQIAAOUbf9sFAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKUIHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGCpCqXdAZSuWk9/5pF2j0zq5pF2AQBlHyMfAADAUoQPAABgKcIHAACwFOEDAABYyu3wsWHDBnXv3l0RERGy2WxasmSJy/PGGL3wwguqVq2aKlasqE6dOunAgQMl1V8AAFDGuR0+MjIy1KxZM02fPr3A5ydPnqzXX39db731ljZv3qzKlSsrLi5Oly5duu7OAgCAss/tS227dOmiLl26FPicMUbTpk3Tc889p549e0qS/vnPfyosLExLlixR//79r6+3AACgzCvRcz4OHz6slJQUderUyVnmcDjUpk0bbdy4scDXZGZmKj093WUCAADlV4mGj5SUFElSWFiYS3lYWJjzubySkpLkcDicU2RkZEl2CQAA3GBK/WqXxMREpaWlOafjx4+XdpcAAIAHlWj4CA8PlySlpqa6lKempjqfy8tutyswMNBlAgAA5VeJho+oqCiFh4dr9erVzrL09HRt3rxZ0dHRJTkrAABQRrl9tcvFixd18OBB5+PDhw9rx44dCg4OVo0aNTRy5EhNnDhR9erVU1RUlJ5//nlFRESoV69eJdlvAABQRrkdPrZs2aIOHTo4H48ePVqSNHjwYM2ePVtPPfWUMjIyNGzYMJ0/f1533XWXli1bJj8/v5LrNQAAKLNsxhhT2p24Unp6uhwOh9LS0jxy/oen/oQ8XB2Z1K20uwAAsJA739+lfrULAAD4bSF8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBSbv9VW6AoPPkH/PijdQBQtjHyAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsxR1OUeZ46u6pnrxzalnsMwB4CiMfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLET4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYq8fAxduxY2Ww2l6lhw4YlPRsAAFBGVfBEo7fccotWrVr135lU8MhsAABAGeSRVFChQgWFh4d7omkAAFDGeeScjwMHDigiIkK1a9fWwIEDdezYsULrZmZmKj093WUCAADlV4mHjzZt2mj27NlatmyZZsyYocOHD6tdu3a6cOFCgfWTkpLkcDicU2RkZEl3CQAA3EBKPHx06dJFDzzwgJo2baq4uDh9/vnnOn/+vBYsWFBg/cTERKWlpTmn48ePl3SXAADADcTjZ4IGBQWpfv36OnjwYIHP2+122e12T3cDAADcIDx+n4+LFy/q0KFDqlatmqdnBQAAyoASDx9PPPGE1q9fryNHjuirr77S7373O3l7e2vAgAElPSsAAFAGlfhhlxMnTmjAgAE6e/asqlatqrvuukubNm1S1apVS3pWAACgDCrx8DFv3rySbhIAAJQj/G0XAABgKcIHAACwFH90Bfh/tZ7+rLS74DZP9vnIpG4ea9tTPLU+yuK68CT2O1wvRj4AAIClCB8AAMBShA8AAGApwgcAALAU4QMAAFiK8AEAACxF+AAAAJYifAAAAEsRPgAAgKW4wykAlCLuForfIkY+AACApQgfAADAUoQPAABgKcIHAACwFOEDAABYivABAAAsRfgAAACWInwAAABLcZMxAAXy5M2vgMJ4ar/z5A3XymKfSxsjHwAAwFKEDwAAYCnCBwAAsBThAwAAWIrwAQAALEX4AAAAliJ8AAAASxE+AACApQgfAADAUtzhFADKKe5SW7Z5cvuV9t1TGfkAAACWInwAAABLET4AAIClCB8AAMBSHgsf06dPV61ateTn56c2bdro66+/9tSsAABAGeKR8DF//nyNHj1aL774orZt26ZmzZopLi5Op0+f9sTsAABAGeKR8PHqq6/qkUceUXx8vBo3bqy33npLlSpV0rvvvuuJ2QEAgDKkxO/zcfnyZW3dulWJiYnOMi8vL3Xq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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGzCAYAAAAxPS2EAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABGT0lEQVR4nO3deVyU5f7/8feAsigwiArIERGXVNzDRCp3Ew0tv5lpueCWxw5WipnRYi4VLpVamebppH0Tj0ullR4X3L8lrsVxS1NzKwUslVFTRLh/f5wfcxxBExwab3o9H4956Nz3Ndf9uWYG5s19X/c9FsMwDAEAAJiIm6sLAAAAKCoCDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CDAAAMB0CjElVr15d/fv3d3UZpd6UKVNUo0YNubu7q0mTJq4uR5JrX/s2bdqoTZs2Ltn2rVi5cqWaNGkiLy8vWSwWnTt3ztUlORg7dqwsFovT+tuwYYMsFos2bNjgtD7NzNnPL+5sBJg7wNy5c2WxWLRjx45C17dp00YNGjS47e3861//0tixY2+7nz+L1atX6/nnn9d9992nOXPm6I033rilxz322GOyWCwaPXp0sbe9efNmjR071iUfwPv27dPYsWN19OjRP3zbt+PXX3/VY489Jm9vb82YMUOffPKJypcvX2Lby/+5zb95eXkpJCREMTExeuedd3T+/Hmnbev999/X3Llzndaf2VSvXt3hub721qlTJ1eXV2Lmz5+vadOm3XL7vLw8zZo1S02aNJGPj4+CgoLUuXNnbd68ueSKdCUDLjdnzhxDkrF9+/ZC17du3dqoX7++w7LLly8bV65cKdJ24uPjDV7yWzd69GjDzc3NyM7OvuXHZGVlGV5eXkb16tWN0NBQIy8vr1jbnjJliiHJOHLkSIF1xXnti2Lx4sWGJGP9+vUF1mVnZxfp+fgjrVixwpBkpKSk/CHby/+5HT9+vPHJJ58YH330kfHGG28YHTt2NCwWixEWFmb8+9//dnhMTk6OcenSpSJvq379+kbr1q0LLM/NzTUuXbpk5ObmFncYphAWFmY0adLE+OSTTwrc1q5da2/36quvlqrfcbGxsUZYWNgtt09ISDAkGX369DE++OADY9KkSUaNGjWMMmXKGFu3bi25Ql2kjOuiE26Hp6enq0sososXL5boX8TOlpmZKW9vb3l4eNzyYz777DPl5ubqo48+Urt27bRp0ya1bt3aqXW58rUvynPxR8vMzJQk+fv7O63PW3nPdu7cWc2aNbPfT0xM1Lp169SlSxc99NBD+v777+Xt7S1JKlOmjMqUcd6vXTc3N3l5eTmtP2fLy8vTlStXnFLjX/7yF/Xp08cJVZVOV69e1cyZM/Xoo4/qk08+sS/v0aOHatSooeTkZDVv3tyFFTofh5BM6vp5EDk5ORo3bpxq164tLy8vVaxYUffff79SUlIkSf3799eMGTMkyWH3a76LFy9q5MiRCg0Nlaenp+rUqaM333xTxnVfVn7p0iU988wzqlSpknx9ffXQQw/p559/lsVicTg8lX8set++fXriiSdUoUIF3X///ZKkXbt2qX///qpRo4a8vLwUHBysgQMH6tdff3XYVn4fP/zwg/r06SOr1arKlSvrlVdekWEYOnHihB5++GH5+fkpODhYb7311i09d1evXtWECRNUs2ZNeXp6qnr16nrxxReVnZ1tb2OxWDRnzhxdvHjR/lzdyi785ORkPfDAA2rbtq3q1aun5OTkQtvt379fjz32mCpXrixvb2/VqVNHL730kn3co0aNkiSFh4fbt59/SOfa137Hjh2yWCz6+OOPC2xj1apVslgsWrZsmSTp2LFj+tvf/qY6derI29tbFStWVI8ePRwOFc2dO1c9evSQJLVt29a+7fw5FoXNgcnMzNSgQYMUFBQkLy8vNW7cuEA9R48elcVi0ZtvvqnZs2fbn/t77rlH27dvd2ibnp6uAQMGqGrVqvL09FSVKlX08MMP3/SQVps2bRQXFydJuueee2SxWBx+PhYvXqzIyEh5e3urUqVK6tOnj37++WeHPvr37y8fHx8dPnxYDz74oHx9fdW7d+8bbvNm2rVrp1deeUXHjh3TvHnz7MtvNEdj3rx5at68ucqVK6cKFSqoVatWWr16taT/vN579+7Vxo0b7a9H/mtwozkwRRnvzz//rG7dusnHx0eVK1fWc889p9zcXIe2b775pu69915VrFhR3t7eioyM1KefflpgHBaLRcOGDVNycrLq168vT09PrVixQtWrV9fDDz9coP3ly5dltVr117/+9Zae1+KaN2+e/fkICAhQr169dOLECYc2+Yfqd+3apdatW6tcuXKqVauWfZwbN25UVFSU/ed1zZo1Bbbz888/a+DAgQoKCpKnp6fq16+vjz76yKFN/mu2aNEivf7666pataq8vLzUvn17HTp0yKGe5cuX69ixY/bXvXr16jccY05Oji5duqSgoCCH5YGBgXJzc7OH6NKEPTB3kKysLP3yyy8Flufk5PzuY8eOHaukpCQNHjxYzZs3l81m044dO/Ttt9/qgQce0F//+ledPHlSKSkpDulckgzD0EMPPaT169dr0KBBatKkiVatWqVRo0bp559/1tSpU+1t+/fvr0WLFqlv375q0aKFNm7cqNjY2BvW1aNHD9WuXVtvvPGGPQylpKToxx9/1IABAxQcHKy9e/dq9uzZ2rt3r7Zs2VLgF3zPnj1Vr149TZw4UcuXL9drr72mgIAAffDBB2rXrp0mTZqk5ORkPffcc7rnnnvUqlWrmz5XgwcP1scff6xHH31UI0eO1NatW5WUlKTvv/9eS5YskSR98sknmj17trZt26YPP/xQknTvvffetN+TJ09q/fr19g/vxx9/XFOnTtV7773nsOdi165datmypcqWLashQ4aoevXqOnz4sL766iu9/vrreuSRR/TDDz/on//8p6ZOnapKlSpJkipXrlxgm82aNVONGjW0aNEi+wd4voULF6pChQqKiYmRJG3fvl2bN29Wr169VLVqVR09elQzZ85UmzZttG/fPpUrV06tWrXSM888o3feeUcvvvii6tWrJ0n2f6936dIltWnTRocOHdKwYcMUHh6uxYsXq3///jp37pyeffZZh/bz58/X+fPn9de//lUWi0WTJ0/WI488oh9//FFly5aVJHXv3l179+7V008/rerVqyszM1MpKSk6fvz4DX+Bv/TSS6pTp45mz56t8ePHKzw8XDVr1pT0n1A2YMAA3XPPPUpKSlJGRoamT5+ub775Rt99953DHpurV68qJiZG999/v958802VK1eu0O3dir59++rFF1/U6tWr9eSTT96w3bhx4zR27Fjde++9Gj9+vDw8PLR161atW7dOHTt21LRp0/T000/Lx8fHHnKv/5C6VlHGm5ubq5iYGEVFRenNN9/UmjVr9NZbb6lmzZp66qmn7O2mT5+uhx56SL1799aVK1e0YMEC9ejRQ8uWLSvw879u3TotWrRIw4YNU6VKlRQeHq4+ffpo8uTJOnPmjAICAuxtv/rqK9lstlvas5KTk1Po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6Pby/2q52RlVN/LNN9/o6NGjGjBggB599NECt549e2r9+vU6efKkKleurFatWumjjz7S8ePHHfq59jm50Wt1I/Xq1VPDhg21cOFCLVy4UFWqVClwNpa7u3uB5/3dd98t8AuvKNt+8MEHlZ6eroULF9qXXb16Ve+++658fHyKfA2c3377TZcvX3ZYVrNmTfn6+jq8l29Vs2bNFBgYqFmzZjk8fsWKFfr++++L9XrfinXr1mnChAkKDw+/6anY3bp1k5ubm8aPH19gL9j174dbeT1KYrzu7u6yWCwO75OjR49q6dKlRe6rb9++2rdvn0aNGiV3d/cCIdvZHnnkEbm7u2vcuHEF3vuGYfzuIedb5e7uru7du+uzzz4r9I+T06dPF6vf8uXL3/Lh3fyAtmDBAofl3377rQ4cOFDiey9dgT0wpURERITatGmjyMhIBQQEaMeOHfr00081bNgwe5vIyEhJ0jPPPKOYmBj7L5CuXbuqbdu2eumll3T06FE1btxYq1ev1hdffKHhw4fbT0eNjIxU9+7dNW3aNP3666/206h/+OEHSbf214Kfn59atWqlyZMnKycnR3/5y1+0evVqHTlypASelYIaN26suLg4zZ49W+fOnVPr1q21bds2ffzxx+rWrZvatm1b5D6Tk5Pl7u5+ww+Hhx56SC+99JIWLFighIQEvfPOO7r//vt19913a8iQIQoPD9fRo0e1fPlypaWlSfrva/XSSy+pV69eKlu2rLp27XrTi6r17NlTY8aMkZeXlwYNGlTgUEiXLl30ySefyGq1KiIiQqmpqVqzZo0qVqzo0K5JkyZyd3fXpEmTlJWVJU9PT7Vr167QuRxDhgzRBx98oP79+2vnzp2qXr26Pv30U/tf19fPq/o9P/zwg9q3b6/HHntMERERKlOmjJYsWaKMjIxifdiVLVtWkyZN0oABA9S6dWs9/vjj9tOKq1evXujhvqJasWKF9u/fr6tXryojI0Pr1q1TSkqKwsLC9OWXX970Im61atXSSy+9pAkTJqhly5Z65JFH5Onpqe3btyskJERJSUmS/vN+mDlzpl577TXVqlVLgYGBBfawlNR4Y2Nj9fbbb6tTp0564oknlJmZqRkzZqhWrVratWtXkfuqWLGiFi9erM6dO990ftD1fv7550L3wPn4+Khbt26FPqZmzZp67bXXlJiYqKNHj6pb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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGzCAYAAAAFROyYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABCTUlEQVR4nO3de1xVVcL/8S93COQgKiDlBc1C0tLUkC5axkiGmo+Y2pCRWc44YHnJSSvNO2oXTUvNmVKf1Cd17DLpeEEtnZLUKBvzlk0qmgNYCkctAWH9/ujHGY+geRA6G/28X6/90rP22muvvfe5fM86e288jDFGAAAAFuLp7g4AAACcj4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4ACAAAsh4BiUY0bN9ajjz7q7m5c8V588UU1adJEXl5eatWqlbu7I8m9x/7uu+/W3Xff7ZZ1X4o1a9aoVatW8vf3l4eHh/Lz893dJSdjx46Vh4dHlbX38ccfy8PDQx9//HGVtVmTVfX+hbURUH4DCxYskIeHhz7//PMK5999991q0aLFZa/nH//4h8aOHXvZ7Vwt1q1bpz//+c+64447NH/+fE2ePPmSluvdu7c8PDz0zDPPVHrdW7Zs0dixY93yAbt7926NHTtWBw8e/M3XfTl+/PFH9e7dWwEBAXr99df19ttvKzAwsNrWV/a6LZv8/f0VGRmphIQEzZw5UydPnqyydc2ePVsLFiyosvZqmsaNGzvt63On++67z93dqzZLlizRjBkzLrl+cXGxxo0bpyZNmsjPz09NmjTRxIkTdfbs2errpDsZVLv58+cbSWb79u0Vzu/YsaO56aabnMrOnDljioqKXFpPamqq4ZBeumeeecZ4enqawsLCS16moKDA+Pv7m8aNG5sGDRqY0tLSSq37xRdfNJLMgQMHys2rzLF3xfLly40k89FHH5WbV1hY6NL++C2tXr3aSDIZGRm/yfrKXrfjx483b7/9tnnrrbfM5MmTTefOnY2Hh4dp1KiR+eqrr5yWKS4uNj///LPL67rppptMx44dy5WXlJSYn3/+2ZSUlFR2M2qERo0amVatWpm333673LRhwwZHvRdeeOGKeo9LTEw0jRo1uuT6vXv3Nh4eHmbAgAFmzpw5JiUlxUgyTzzxRPV10o283ReNcDF+fn7u7oLLTp8+Xa3faKtaXl6eAgIC5Ovre8nLrFixQiUlJXrrrbfUqVMnbd68WR07dqzSfrnz2LuyL35reXl5kqSQkJAqa/NSnrNdunRR27ZtHY9HjRqljRs3qmvXrurevbv27NmjgIAASZK3t7e8vavubdXT01P+/v5V1l5VKy0tVVFRUZX08dprr9XDDz9cBb26Mm3fvl3Lli3T6NGjNX78eEnSH//4R9WtW1evvPKK0tLSdPPNN7u5l1XM3QnpalCZEZRGjRqZlJQUx+OioiIzduxYc/311xs/Pz8TGhpq7rjjDrNu3TpjjHEk6fOnMqdOnTLDhg0z1113nfH19TU33HCDefHFF8uNAPz0009m8ODBpk6dOiYoKMh069bNHDlyxEgyL7zwgqNe2TeZXbt2mYceesiEhISYVq1aGWOM+eqrr0xKSoqJiooyfn5+Jjw83PTv39/88MMPTusqa2Pfvn0mOTnZBAcHm7p165rnn3/elJaWmuzsbNO9e3dTq1YtEx4ebl566aVL2t/FxcVm/PjxpkmTJsbX19c0atTIjBo1ypw5c8ZRp6J9NX/+/F9t+9577zX333+/McaY5s2bX/Cby549e8yDDz5o6tata/z9/c0NN9xgnn32WaftPn8qG00599hv377dSDILFiwot441a9YYSebDDz80xhhz8OBBM2jQIHPDDTcYf39/Exoaanr16uU0SlP2XDx/KhtN6dixY7lv8rm5ueaxxx4zYWFhxs/Pz9x8883l+nPgwAEjybz44ovmjTfecOz7tm3bmm3btjnV/c9//mMeffRRc+211xpfX18TERFhunfvXuFoUpmOHTuW6/O5r49ly5aZW2+91fj7+5s6deqY5ORkc+TIEac2UlJSTGBgoPn2229Nly5dTFBQkHnggQcuuM5fe91OnjzZSDLz5s1zlF3oG/7bb79t2rVrZwICAkxISIi56667zNq1a40xvxzv87et7Bh89NFHFY52ubK9R44cMQ888IAJDAw0devWNcOHDzdnz551qvviiy+auLg4Exoaavz9/c2tt95qli9fXm47JJnU1FSzaNEiExMTY7y9vc27775rGjVqZLp3716u/s8//2yCg4PNwIEDK9yHZRo1amQSExMvWseYi+/fsv1Ru3Zt06dPH5Odne1Up+x99quvvjIdOnQwAQEBpmnTpo7t/Pjjj81tt93meL1WNFJ35MgR079/fxMWFmZ8fX1NTEyMefPNN53qlB2zpUuXmokTJ5prr73W+Pn5mU6dOpn9+/c79ef8436x0ZSXX37Z8Z57rrL3iLL3lysJIyi/oYKCAv3www/lyouLi3912bFjxyo9PV2PP/64brvtNtntdn3++ef64osv9Lvf/U5/+MMfdPToUWVkZOjtt992WtYYo+7du+ujjz7SgAED1KpVK61du1YjRozQ999/r+nTpzvqPvroo1q2bJn69eun9u3ba9OmTUpMTLxgvx588EE1a9ZMkydPljFGkpSRkaHvvvtO/fv3V0REhHbt2qV58+Zp165d+uyzz8qd5NanTx81b95cU6ZM0apVqzRx4kSFhobqjTfeUKdOnTR16lQtXrxYTz/9tNq1a6cOHTpcdF89/vjjWrhwoXr16qXhw4dr69atSk9P1549e/Tee+9Jkt5++23NmzdP27Zt01//+ldJ0u23337Rdo8ePaqPPvpICxculCQ99NBDmj59ul577TWnkYd//etfuuuuu+Tj46OBAweqcePG+ve//60PP/xQkyZNUs+ePfXNN9/o//7v/zR9+nTVrVtXklSvXr1y62zbtq2aNGmiZcuWKSUlxWne0qVLVbt2bSUkJEj65RvWli1b1LdvX1133XU6ePCg5syZo7vvvlu7d+/WNddcow4dOujJJ5/UzJkz9eyzz6p58+aS5Pj3fD///LPuvvtuffvtt0pLS1NUVJSWL1+uRx99VPn5+Xrqqaec6i9ZskQnT57UH/7wB3l4eGjatGnq2bOnvvvuO/n4+EiSkpKStGvXLg0ePFiNGzdWXl6eMjIylJ2drcaNG1fYj+eee0433nij5s2bp/HjxysqKkpNmzaV9Mu5Iv3791e7du2Unp6u3Nxcvfrqq/r000/15ZdfOo24nD17VgkJCbrzzjv10ksv6ZprrqlwfZeiX79+evbZZ7Vu3To98cQTF6w3btw4jR07VrfffrvGjx8vX19fbd26VRs3blTnzp01Y8YMDR48WEFBQXruueckSeHh4Rdsz5XtLSkpUUJCgmJjY/XSSy9p/fr1evnll9W0aVMNGjTIUe/VV19V9+7dlZycrKKiIr3zzjt68MEHtXLlynKv/40bN2rZsmVKS0tT3bp1FRUVpYcffljTpk3T8ePHFRoa6qj74Ycfym63X9LISHFxcYXvj4GBgY4RqopMmjRJo0ePVu/evfX444/r2LFjmjVrljp06FBuf5w4cUJdu3ZV37599eCDD2rOnDnq27evFi9erCFDhuiPf/yjfv/73+vFF19Ur169dPjwYdWqVUuSlJubq/bt28vDw0NpaWmqV6+eVq9erQEDBshut2vIkCFO/ZoyZYo8PT319NNPq6CgQNOmTVNycrK2bt0q6ZfndEFBgY4cOeJ4Dw4KCrrgdhYWFkpSuX1R9hzOysq64LI1lrsT0tXgQt9az51+bQTllltu+dVvGBc6B+X99983kszEiROdynv16mU8PDzMt99+a4wxJisry0gyQ4YMcar36KOPXnAE5aGHHiq3vp9++qlc2f/93/8ZSWbz5s3l2jj329XZs2fNddddZzw8PMyUKVMc5SdOnDABAQFO+6QiO3bsMJLM448/7lT+9NNPG0lm48aNjrKyb5iX6qWXXjIBAQHGbrcbY4z55ptvjCTz3nvvOdXr0KGDqVWrljl06JBT+bmjVRc7B+X8Yz9q1Cjj4+Njjh8/7igrLCw0ISEh5rHHHnOUVbTfMzMzjSTzv//7v46yi52Dcv4IyowZM4wks2jRIkdZUVGRiYuLM0FBQY59UTaCUqdOHad+fvDBB06jPCdOnHCMtLiqohGNoqIiExYWZlq0aOF07sfKlSuNJDNmzBhHWdko48iRIyu9vvPZbDbTunVrx+Pzv+Hv37/feHp6mv/5n/8pdx7Juc+HC52Dcv4ISmW2d/z48U5ttm7d2rRp08ap7PznTlFRkWnRooXp1KmTU7kk4+npWe5b/L59+4wkM2fOHKfy7t27m8aNG//quVoVjSKVTenp6Y565+/fgwcPGi8vLzNp0iSn9nbu3Gm8vb2dystGLJYsWeIo27t3r2ObPvvsM0f52rVry42qDhgwwNSvX7/cSHDfvn2NzWZz7MOyY9a8eXOn87leffVVI8ns3LnTUebKOSgrVqwwkszbb7/tVD537lwjybRo0eKS2qlJuIrnN/T6668rIyOj3HQpvxuGhIRo165d2r9/v8vr/cc//iEvLy89+eSTTuXDhw+XMUarV6+W9MslnJL0pz/9yane4MGDL9j2H//4x3Jl5yb8M2fO6IcfflD79u0lSV988UW5+o8//rjj/15eXmrbtq2MMRowYICjPCQkRDfeeKO+++67C/ZF+mVbJWnYsGFO5cOHD5ckrVq16qLLX8zixYuVmJjo+EbVrFkztWnTRosXL3bUOXbsmDZv3qzHHntMDRs2dFq+spdH9unTR8XFxXr33XcdZevWrVN+fr769OnjKDt3vxcXF+vHH3/U9ddfr5CQkAr3+6X4xz/+oYiICD300EOOMh8fHz355JM6deqUNm3aVK6vtWvXdjy+6667JMlx3MrO+fn444914sSJSvXpXJ9//rny8vL0pz/9yek8iMTEREVHR1d4vM8dObhcQUFBF72a5/3331dpaanGjBkjT0/nt9vKPB8qs73nv0bvuuuucq+jc587J06cUEFBge66664KnzcdO3ZUTEyMU9kNN9yg2NhYp9fC8ePHtXr1aiUnJ1/StsbGxlb4/njuc+987777rkpLS9W7d2/98MMPjikiIkLNmjXTRx995FQ/KChIffv2dTy+8cYbFRISoubNmys2NtapL9J/n7fGGK1YsULdunWTMcZpXQkJCSooKCi3r/r37+80snr+a8FV999/vxo1aqSnn35a7777rg4dOqRly5bpueeek7e3t37++edKtWtl/MTzG7rtttucTrYrU7t27QqHNs81fvx4PfDAA7rhhhvUokUL3XffferXr98lhZtDhw4pMjLS8cFapmxY/9ChQ45/PT09FRUV5VTv+uuvv2Db59eVfnljGjdunN555x3HiY1lCgoKytU//4PcZrPJ39/f8dPHueU//vjjBfty7jac3+eIiAiFhIQ4ttVVe/bs0ZdffqlHHnlE3377raP87rvv1uuvvy673a7g4GDHm09VXDZe5pZbblF0dLSWLl3qCG1Lly5V3bp11alTJ0e9n3/+Wenp6Zo/f76+//57x09uUsX7/VIcOnRIzZo1K/fhev5zp8z5x7IsrJSFET8/P02dOlXDhw9XeHi42rdvr65du+qRRx5RREREpfon/fJBc77o6Gh98sknTmXe3t667rrrXF7PhZw6dUphYWEXnP/vf/9bnp6e5T7QK8vV7fX39y/302Ht2rXLhcOVK1dq4sSJ2rFjh+OnBKniEFXRa16SHnnkEaWlpenQoUNq1KiRli9fruLiYvXr1++Stq1u3bqKj4+/pLpl9u/fL2OMmjVrVuH8sp8Vy1x33XXltslms6lBgwblyqT/Pm+PHTum/Px8zZs3T/PmzatwXee/1/3aa8FV/v7+WrVqlXr37q2kpCRJv7yepk2bpkmTJl3056GaioBSQ3To0EH//ve/9cEHH2jdunX661//qunTp2vu3LlOIxC/tYp+G+7du7e2bNmiESNGqFWrVgoKClJpaanuu+8+lZaWlqvv5eV1SWWSnD50L6aqb+a0aNEiSdLQoUM1dOjQcvNXrFih/v37V+k6z9WnTx9NmjRJP/zwg2rVqqW///3veuihh5yuGBk8eLDmz5+vIUOGKC4uTjabTR4eHurbt2+F+706XMpxGzJkiLp166b3339fa9eu1ejRo5Wenq6NGzeqdevW1do/Pz+/cmGrso4cOaKCgoKLBnh3u9DxONc///lPde/eXR06dNDs2bNVv359+fj4aP78+VqyZEm5+hc6H6Rv374aOnSoFi9erGeffVaLFi1S27ZtKwxTVaW0tFQeHh5avXp1hdt6/of2hfbHrz1vy14/Dz/8cLlzwcqc/2Xxct/DKnLTTTfp66+/1u7du3XixAnFxMQoICBAQ4cOrfKrCa2AgFKDhIaGqn///urfv79OnTqlDh06aOzYsY6AcqEP5UaNGmn9+vU6efKk0yjK3r17HfPL/i0tLdWBAwecvpGcO2Lwa06cOKENGzZo3LhxGjNmjKO8Mj9NVUbZNuzfv9/pxM/c3Fzl5+c7ttUVxhgtWbJE99xzT7mfvyRpwoQJWrx4sfr3768mTZpIkr7++uuLtulqgOrTp4/GjRunFStWKDw8XHa73WmoWpL+9re/KSUlRS+//LKj7MyZM+VuBufKuhs1aqR//etfKi0tdfpgP/+546qmTZtq+PDhGj58uPbv369WrVrp5ZdfdgRBV/onSfv27XMaTSorq2z/LkXZyehlJylXpGnTpiotLdXu3bsveqfiSz0m1bG9K1askL+/v9auXet0ifv8+fNdaic0NFSJiYlavHixkpOT9emnn7p0E7LKaNq0qYwxioqK0g033FBt66lXr55q1aqlkpISl0d5LqYyX6Q8PDx00003OR7/4x//UGlpaZX2yyo4B6WGOP+njaCgIF1//fVOw7Fl93M4/wPp/vvvV0lJiV577TWn8unTp8vDw0NdunSR9N832tmzZzvVmzVr1iX3s+xbw/nfEqr7jarM/fffX+H6XnnlFUm66BVJF/Lpp5/q4MGD6t+/v3r16lVu6tOnjz766CMdPXpU9erVU4cOHfTWW28pOzvbqZ1z98mFjtWFNG/eXC1bttTSpUu1dOlS1a9fv9zVTF5eXuX2+6xZs1RSUuJU5sq677//fuXk5Gjp0qWOsrNnz2rWrFkKCgpy+VvbTz/9pDNnzjiVNW3aVLVq1XJ6Ll+qtm3bKiwsTHPnznVafvXq1dqzZ0+ljvel2LhxoyZMmKCoqCglJydfsF6PHj3k6emp8ePHlxvFOv/5cCnHozq218vLSx4eHk7Pk4MHD+r99993ua1+/fpp9+7dGjFihLy8vMqF6KrWs2dPeXl5ady4ceWe+8aYX/1J+FJ5eXkpKSlJK1asqPDLx7FjxyrVbmBgYKV/fpV++Vl39OjRql+//kXP1ampGEGpIWJiYnT33XerTZs2Cg0N1eeff66//e1vSktLc9Rp06aNJOnJJ59UQkKC4w2iW7duuueee/Tcc8/p4MGDuuWWW7Ru3Tp98MEHGjJkiONyzTZt2igpKUkzZszQjz/+6LjM+JtvvpF0aWk/ODhYHTp00LRp01RcXKxrr71W69at04EDB6phr5R3yy23KCUlRfPmzVN+fr46duyobdu2aeHCherRo4fuuecel9tcvHixvLy8Lvjm3717dz333HN65513NGzYMM2cOVN33nmnbr31Vg0cOFBRUVE6ePCgVq1apR07dkj677F67rnn1LdvX/n4+Khbt24XvWlYnz59NGbMGPn7+2vAgAHlfqro2rWr3n77bdlsNsXExCgzM1Pr169XnTp1nOq1atVKXl5emjp1qgoKCuTn56dOnTpVeC7FwIED9cYbb+jRRx9VVlaWGjdurL/97W+Ob8fnn9f0a7755hvde++96t27t2JiYuTt7a333ntPubm5lfow8/Hx0dSpU9W/f3917NhRDz30kOOy28aNG1f4c5yrVq9erb179+rs2bPKzc3Vxo0blZGRoUaNGunvf//7RW9Sdv311+u5557ThAkTdNddd6lnz57y8/PT9u3bFRkZqfT0dEm/PB/mzJmjiRMn6vrrr1dYWFi5EZLq2t7ExES98soruu+++/T73/9eeXl5ev3113X99dfrX//6l8tt1alTR8uXL1eXLl0uen7O+b7//vsKR9CCgoLUo0ePCpdp2rSpJk6cqFGjRungwYPq0aOHatWqpQMHDui9997TwIED9fTTT7u0DRcyZcoUffTRR4qNjdUTTzyhmJgYHT9+XF988YXW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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Plot a histogram\n",
    "import matplotlib.pyplot as plt\n",
    "for x in range(10):\n",
    "    max_elements = (dictionary_activations[:, max_indices[x]]>0.01)\n",
    "    plt.hist(dictionary_activations[max_elements, max_indices[x]], bins=20)\n",
    "    plt.title('Histogram of Activations for Dictionary Element ' + str(x))\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "vscode": {
     "languageId": "shellscript"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "21994\n",
      "10\n",
      "62\n",
      "842\n",
      "157\n",
      "119\n",
      "943\n",
      "152\n",
      "10126\n",
      "1282\n"
     ]
    }
   ],
   "source": [
    "#Plot a histogram\n",
    "import matplotlib.pyplot as plt\n",
    "for x in range(10):\n",
    "    print((dictionary_activations[:, max_indices[x]] > 0.01).sum().item())"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.11"
  },
  "orig_nbformat": 4
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
